###前提・実現したいこと
objective-cで、PHPを通して取得した結果をNSStringに入れた時に、型違いエラー
###発生している問題・エラーメッセージ
エラーメッセージ data = ( { "api_url" = "http://11.11.111.111/471610001/api/"; } ); message = "OK."; } 2016-09-08 07:37:26.477 B[1995:67240] -[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x7c1a3630 2016-09-08 07:37:26.484 B[1995:67240] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x7c1a3630' *** First throw call stack: ( 0 CoreFoundation 0x03f8c494 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x039a1e02 objc_exception_throw + 50 2 CoreFoundation 0x03f96253 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275 3 CoreFoundation 0x03ecb89d ___forwarding___ + 1037 4 CoreFoundation 0x03ecb46e _CF_forwarding_prep_0 + 14 5 B 0x001fd703 __35-[LoginViewController requestLogin]_block_invoke + 339 6 B 0x001fba6b __64-[AFJSONRequestOperation setCompletionBlockWithSuccess:failure:]_block_invoke.99 + 43 7 libdispatch.dylib 0x04c56363 _dispatch_call_block_and_release + 15 8 libdispatch.dylib 0x04c799cd _dispatch_client_callout + 14 9 libdispatch.dylib 0x04c5ef7c _dispatch_main_queue_callback_4CF + 910 10 CoreFoundation 0x03ed61be __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 14 11 CoreFoundation 0x03e94434 __CFRunLoopRun + 2356 12 CoreFoundation 0x03e93846 CFRunLoopRunSpecific + 470 13 CoreFoundation 0x03e9365b CFRunLoopRunInMode + 123 14 GraphicsServices 0x06587664 GSEventRunModal + 192 15 GraphicsServices 0x065874a1 GSEventRun + 104 16 UIKit 0x00ee3eb9 UIApplicationMain + 160 17 B 0x002bcdaa main + 138 18 libdyld.dylib 0x04ca3a25 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException ###該当のソースコード **objective-c** LoginViewController.m NSDictionary* _data = [responseObject objectForKey:@"data"]; NSString* strurl = [Common convertObjectToString:[_data objectForKey:@"api_url"]];
Commonクラス
+ (NSString *)convertObjectToString:(id)originObject { if (originObject == nil || originObject == (id)[NSNull null]) { return @""; } NSString *result = @""; if ([originObject isKindOfClass:[NSString class]]) { result = (NSString *)originObject; } else if ([originObject isKindOfClass:[NSNumber class]]) { result = [originObject stringValue]; } else { result = @""; } return result; }
###試したこと
課題に対してアプローチしたことを記載してください
convertObjectToString を外して、単純に_data objectForKey:@"api_url"にしてみましたが
結果は同じでした。
###補足
型違いと言われているようなのですが、他の部分でも同じロジックでデータを取得しており、なぜここだけ型違いエラーになるのかどうしてもわかりませんでした。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。