[英]converting NSString to NSData - [NSString dataUsingEncoding] exception
我正在將NSString轉換為NSData以便通過JSON解析,但是我收到了以下錯誤。
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '- [__NSCFDictionary dataUsingEncoding:]:
unrecognized selector sent to instance 0x7987d60'
代碼如下:
NSData *data = [str dataUsingEncoding:NSASCIIStringEncoding];
//NSUTF8StringEncoding also failed.
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
在我看來,這是因為str包含換行符:'\\ n'。
我對么?
請問有人幫我解決這個問題嗎?
您的錯誤表明您正在嘗試將dataUsingEncoding:allowLossyConversion:
發送到NSDictionary
的實例,該實例不知道如何處理該選擇器。 確保你的str
對象實際上是一個字符串......
嘗試使用NSUnicodeStringEncoding
而不是NSASCIIStringEncoding
。 所以更換線:
NSData *data = [str dataUsingEncoding:NSASCIIStringEncoding];
有了這個:
NSData *data = [str dataUsingEncoding:NSUnicodeStringEncoding];
我只是檢查了我的樣本字符串。 **如果你能給我你的字符串,那么我可以用我的以下示例代碼簽出。
NSString *msg = [NSString stringWithFormat:@"tell me \"where\"\n"
"is\n"
"wrong"];
NSData *theData = [msg dataUsingEncoding:NSASCIIStringEncoding];
NSString* theString = [[NSString alloc] initWithData:theData encoding:NSASCIIStringEncoding];
BOOL isValid = [NSJSONSerialization isValidJSONObject:theString];
NSLog(@"Value %d %@",isValid, theString);
對我來說價值即將到來並告訴我“在哪里”
是
錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.