2016-04-05 20 views
-1

これはかなりまっすぐ進むべきであるように思われます - しかし、残念ながら、私はクラッシュしています。uncaught>例外 'NSInvalidArgumentException'のためにアプリケーションを終了します

.M

NSMutableDictionary *viewParams = [NSMutableDictionary new]; 
[viewParams setValue:@"u000" forKey:@"view_name"]; 
[DIOSView viewGet:viewParams success:^(AFHTTPRequestOperation *operation, id responseObject) { 


    self.userData = [responseObject mutableCopy]; 

    self.username.text = [self.userData objectForKey:@"users_name"]; 

    dispatch_async(dispatch_get_main_queue(), ^(void){ 

    }); 


} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Failure: %@", [error localizedDescription]); 
}]; 

コンソールデータを返します:

2016-04-05 12:25:36.877 [1331:350069] This is the Other User Data (
     { 
     address = "Vancouver"; 
     userbio = "There is currently no bio available for this user. If you have added your bio, and require assistance, please contact the Team."; 
     "users_name" = Brittany; 
    }, 

私は単にUSERS_NAMEさんフィールドから返されたテキストで私のUILabelを設定しようとしていますつまり、このラインはクラッシュを引き起こしています:

self.username.text = [self.userData objectForKey:@"users_name"]; 

そして、これは誤りです:

2016-04-05 12:25:36.878 [1331:350069] -[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x15a23c100 2016-04-05 12:25:36.881 [1331:350069] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x15a23c100' * First throw call stack: (0x181d51900 0x1813bff80 0x181d5861c 0x181d555b8 0x181c5968c 0x1000cce9c 0x1000c72bc 0x1000d3cc4 0x100459bf0 0x100459bb0 0x10045f658 0x181d08bb0 0x181d06a18 0x181c35680 0x183144088 0x186aacd90 0x1000d4c88 0x1817d68b8) libc++abi.dylib: terminating with uncaught exception of type NSException

がどのように私はこの問題を解決するのでしょうか?それは単純なように思える...

+0

userData [@ "users_name"]を試すことができますか? userDataはNSDictionaryですか?失敗した場合は、userData [@ "users_name"]をログに記録してみてください。 –

+2

userDataが配列であると思われます(理由は ' - [NSCFArray objectForKey:]'です)ブレークポイントを配置し、 'userData'が実際には辞書であって配列ではないことを確認します。 –

+0

@TejaNandamuriそれはそのように失敗する。同じクラッシュエラー。 – Brittany

答えて

0

私はuserDataは、配列の種類と思います。配列にはキー値はありません。 試してみてください:
[[self.userData objectAtIndex:0] objectForKey:@"users_name"];

+0

エラーが表示されます:「NSDictionaryの表示されていない@interaceはセレクタobjectAtIndexを宣言します。 – Brittany

+0

userDataをNSDictionaryの上に宣言していると思われますので、NSArrayの型を変更してください働くでしょう。 –

関連する問題