我在以下声明中遇到了问题。
NSArray *feedsData = [strFeedsResponse JSONValue];
答案 0 :(得分:2)
我认为strFeedsResponse
是NSString
的一个实例。 JSONValue
中没有NSString
这样的方法。您需要NSString 类别并在那里添加JSONValue
方法。
您可以使用例如 SBJson 库https://github.com/stig/json-framework/,其中包含NSString + SBJson.h标头,它为NSString添加了JSONValue
方法。
此标头必须在要使用JSONValue
方法的源文件中导入:
#import NSString+SBJSON.h
有关类别的更多信息,例如:http://macdevelopertips.com/objective-c/objective-c-categories.html
答案 1 :(得分:1)
正在发生以下两件事之一:
strFeedsResponse实际上不是NSString的实例。也许它是null或者它是以不正确的值启动的。您可以在代码中添加断点,以便在调用JSONValue之前检查存储在strFeedsResponse中的值。
您尚未正确导入正在使用的JSON框架。您需要将JSON标头添加到您的班级。
答案 2 :(得分:1)
希望这可以帮助未来的搜索者解决这个错误...
错误的原因是当前版本的SBJson似乎不包含早期海报所提到的NSString类别“NSString + SBJSON.h”。所以,你可以轻松编写自己的,或者直接使用SBJsonParser类(“地址”只是一个包含类似“24 Elm Street,Yourtown,New Mexico”的NSString):
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];
干杯!
答案 3 :(得分:0)
NSArray *feedsData = [[strFeedsResponse JSONValue] mutableCopy];
使用此行,它对您有用..
答案 4 :(得分:0)
当找不到方法时,通常会出现此错误。这是因为找不到 JSONValue 功能。
请确保您在调用此函数时包含了json头文件。
答案 5 :(得分:0)
如果您使用的是网络服务,请提供该网址。
试试这个......
NSArray* latestentry = (NSDictionary*)[responseString JSONValue];