我在尝试在模拟器上运行应用程序时出现错误。 我抄JSON(JSON Framework)的项目在我的应用程序,但我的模拟器崩溃时它编译下面的线,(我使用的是iOS 4.2)iPhone应用程序出现JSON错误
- (void)viewDidLoad {
[super viewDidLoad];
NSString *jsonString = [NSString stringWithString:@"{\"foo\": \"bar\"}"];
NSDictionary *dictionary = [jsonString JSONValue];
NSLog(@"Dictionary value for \"foo\" is \"%@\"", [dictionary objectForKey:@"foo"]);
}
错误:
2011-03-02 13:33:37.304 test[10918:207] -[NSCFString JSONValue]: unrecognized selector sent to instance 0x3034
2011-03-02 13:33:37.308 test[10918:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString JSONValue]: unrecognized selector sent to instance 0x3034'
*** Call stack at first throw:
(
0 CoreFoundation 0x00da7be9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x00efc5c2 objc_exception_throw + 47
2 CoreFoundation 0x00da96fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00d19366 ___forwarding___ + 966
4 CoreFoundation 0x00d18f22 _CF_forwarding_prep_0 + 50
5 test 0x000025d7 -[testViewController viewDidLoad] + 119
6 UIKit 0x0035e65e -[UIViewController view] + 179
7 test 0x0000237e -[testAppDelegate application:didFinishLaunchingWithOptions:] + 79
8 UIKit 0x002b11fa -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
9 UIKit 0x002b355e -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 439
10 UIKit 0x002bddb2 -[UIApplication handleEvent:withNewEvent:] + 1533
11 UIKit 0x002b6202 -[UIApplication sendEvent:] + 71
12 UIKit 0x002bb732 _UIApplicationHandleEvent + 7576
13 GraphicsServices 0x016dda36 PurpleEventCallback + 1550
14 CoreFoundation 0x00d89064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
15 CoreFoundation 0x00ce96f7 __CFRunLoopDoSource1 + 215
16 CoreFoundation 0x00ce6983 __CFRunLoopRun + 979
17 CoreFoundation 0x00ce6240 CFRunLoopRunSpecific + 208
18 CoreFoundation 0x00ce6161 CFRunLoopRunInMode + 97
19 UIKit 0x002b2fa8 -[UIApplication _run] + 636
20 UIKit 0x002bf42e UIApplicationMain + 1160
21 test 0x0000230c main + 102
22 test 0x0000229d start + 53
)
terminate called after throwing an instance of 'NSException'
Program received signal: “SIGABRT”.
(gdb)
您正在使用哪种JSON框架?你是否在需要它的类中导入它?你试图发送'JSONValue'到'NSString',它没有这样的方法,但我认为这个框架可以利用类别来加强这个功能。 – 2011-03-02 20:39:41
我已经从网上下载了JsoniPhoneSDK.dmg文件。我按照其中一个教程的建议在我的项目中添加了JSON文件夹。将JSON.h文件包含在我的appController.m文件中。我使用下面的教程来安装JSON http://mobileorchard.com/tutorial-json-over-http-on-the-iphone/ – developer 2011-03-02 20:48:10
您是否勾选了将源文件添加到项目中时复制源文件的复选框?如果没有,并且您删除了原始磁盘映像,则可能是您的问题。 – 2011-03-02 21:12:57