您好我正在获取此数据表单服务器
NSDictionary*feed=[saveDic objectForKey:@"feed"];
NSLog(@"%@",feed); //Outputs: feed = ( { code = yQ7j0t; "user_id" = 889445341091863; } ); }
NSLog(@"%@",[feed valueForKey:@"code"]);
NSString *referralCode = [feed valueForKey:@"code"];
NSLog(@"%@",referralCode);
self.referralCode.text=referralCode;
请注意,我的误差低于此值。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI length]: selector sent to instance 0x165d5150'``
任何帮助将不胜感激。
答案 0 :(得分:0)
您使用变量的地方;
yourVaribleName.length
或
[yourVaribleName length]
应该是
yourVaribleName.count
注意:崩溃恰恰说明" yourVaribleName "是 NSArray 类型,您希望 NSArray 的长度。但 NSArray 没有功能" 长度"。 NSArray有" 计数"特征
//尝试使用此代码
NSArray *referralCode = [feed valueForKey:@"code"];
NSLog(@"%@",referralCode);
self.referralCode.text=[referralCode componentsJoinedByString:@" "];//@"," or @"" what event you need
答案 1 :(得分:0)
问题是,您的feed
密钥包含一个数组。您没有在代码中正确处理它,这就是崩溃发生的原因。当您调用valueForKey:
时,它会检索该特定键所持有的值数组。
为了修复你可以使用:
NSArray *feed = [saveDic objectForKey:@"feed"];
NSArray *referralCodes = [feed valueForKey:@"code"];
NSString *referralCode = referralCodes.count ? referralCodes[0] : @"";
NSLog(@"%@",referralCode);
但我个人更喜欢使用objectForKey:
代替valueForKey:
。所以你可以重写代码:
NSArray *feed = [saveDic objectForKey:@"feed"];
NSString *referralCode = feed.count ? [feed[0] objectForKey:@"code"] : @"";
NSLog(@"%@",referralCode);
答案 2 :(得分:0)
您的Feed数据位于数组中。所以你从array.Hope中检索代码值它会帮助你。
NSMutableArray*feed=[saveDic objectForKey:@"feed"];
NSLog(@"%@",feed);
NSLog(@"%@",[feed valueForKey:@"code"]);
NSString *referralCode = [[feed objectAtIndex:indexPath]valueForKey:@"code"];
NSLog(@"%@",referralCode);
self.referralCode.text=referralCode;