我在以下陈述中遇到问题。
NSArray *feedsData = [strFeedsResponse JSONValue];
我认为strFeedsResponse
是NSString
. 没有像JSONValue
中这样的方法NSString
。您需要 NSString类别并在那里添加JSONValue
方法。
您可以使用例如SBJson库https://github.com/stig/json-framework/,其中包含 NSString+SBJson.h 标头,其中添加了JSONValue
NSString 的方法。
此标头必须在要使用该JSONValue
方法的源文件中导入:
#import NSString+SBJSON.h
有关类别的更多信息,例如:http: //macdevelopertips.com/objective-c/objective-c-categories.html
正在发生两件事之一:
strFeedsResponse 实际上不是 NSString 的实例。可能它为 null 或者它已使用不正确的值启动。您可以在代码中添加断点以检查存储在 strFeedsResponse 中的值,然后再对其调用 JSONValue。
您尚未将您正在使用的 JSON 框架正确导入到您的课程中。您需要将 JSON 标头添加到您的类中。
希望这有助于未来的搜索者解决这个错误......
错误的原因是当前版本的 SBJson 似乎不包含早期发布者提到的 NSString 类别“NSString+SBJSON.h”。因此,您可以轻松编写自己的代码,或者直接使用 SBJsonParser 类(“address”只是一个 NSString,其中包含“24 Elm Street, Yourtown, New Mexico”):
NSString *esc_addr = [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *req = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", esc_addr];
NSString *response = [NSString stringWithContentsOfURL: [NSURL URLWithString: req] encoding: NSUTF8StringEncoding error: NULL];
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *googleResponse = [parser objectWithString:response];
干杯!
NSArray *feedsData = [[strFeedsResponse JSONValue] mutableCopy];
使用这条线,它会对你有用..
这个错误一般是在找不到方法的时候出现的。这里是因为没有找到JSONValue函数。
请确保在调用此函数的位置包含 json 头文件。
如果您使用的是网络服务,请提供相应的 URL。
试试这个方法...
NSArray* latestentry = (NSDictionary*)[responseString JSONValue];