我已经准备好通过谷歌尝试多种解决方案,但我得到两种错误,解决方案我得到了这个
2015-08-06 18:52:33.110 FastFast [2824:110493] *由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [__ NSCFString stringValue]:无法识别的选择器发送到实例0x7f89c1eb7e50' * 首先抛出调用堆栈:
但是当我没有应用任何解决方案时,我得到了这个
2015-08-06 19:09:24.473 FastFast [2933:117451] - [__ NSCFNumber length]:无法识别的选择器发送到实例0xb000000000000003 2015-08-06 19:09:24.480 FastFast [2933:117451] *由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [__ NSCFNumber长度]:无法识别的选择器已发送例如0xb000000000000003' * 首先抛出调用堆栈:
我从1天开始就搞乱了这段代码,但却无法找到实际问题。 但是当我在这个函数上设置静态限制时,每件事都可以正常工作。
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSLog(@"Number Of Row %lu",_AddressArray.count);
return 4; // when set static limit here like this all works fine
return [self.temporaryAddArray count];}
链接下面的属于我的界面文件和实现文件
file.h https://drive.google.com/file/d/0B85GTvLEHASFVDEwajA1YXp1aUE/view?usp=sharing
file.m https://drive.google.com/file/d/0B85GTvLEHASFNEhzUnN1U25qaEk/view?usp=sharing
任何形式的帮助将不胜感激。
答案 0 :(得分:1)
您需要确保初始化NSMutableArray
简单地添加
self.temporaryAddArray = [[NSMutableArray alloc]init];
到
-(void)viewDidLoad;
应该解决您的问题。
答案 1 :(得分:1)
经过非常深入的挖掘,在你的答案的帮助下,我简短地说出了问题所在。
Json回应在这里 {“Android”:[{“recip_code”:“94541824”,“recip_fname”:“”,“recip_lname”:“”,“recip_add1”:“hillsrtreat main road h.no. 3535”,“recip_img”:“” ,“recip_add2”:“”,“recip_stateid”:“新状态”,“recip_cityid”:“都柏林”,“结果”:“成功”},{“recip_code”:“53843299”,“recip_fname”:“”, “recip_lname”:“”,“recip_add1”:“rz x yes RR HDTV j deed ju”,“recip_img”:“”,“recip_add2”:“”,“recip_stateid”:“Westmeath”,“recip_cityid”:“都柏林“ ”结果“: ”成功“},{ ”recip_code“: ”11493834“, ”recip_fname“: ”“, ”recip_lname“: ”“, ”recip_add1“: ”newdgbfh“, ”recip_img“: ”“,” recip_add2 “:””, “recip_stateid”: “西米斯”, “recip_cityid”: “bobo2”, “结果”: “成功”},{ “recip_code”: “29376578”, “recip_fname”: “”, “recip_lname” : “”, “recip_add1”: “edggvfhkyfv”, “recip_img”: “”, “recip_add2”: “”, “recip_stateid”: “都柏林”, “recip_cityid”: “bobo2”, “结果”: “成功”} ,{“recip_code”:“22549638”,“recip_fname”:“”,“recip_lname”:“”,“recip_add1”:“此ios地址34 street”,“recip_img”:“”,“recip_add2”:“”, “recip_stateid”:0 “recip_cityid”:0 “结果是”: “成功”}]}
在给定的图像中,数组中存在错误的可视化,在第一个选择中它显示 STRING ,在第二个选择中有整数值,这是该残酷异常的原因
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"addAddress";
AddressTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
@try {
NSDictionary *currentAddress = [self.AddressArray objectAtIndex:indexPath.row];
NSString *addTitle= [NSString stringWithFormat:@"%@%@",[currentAddress objectForKey:@"recip_add1"],[currentAddress objectForKey:@"recip_add2"]];
cell.lblAddress.text =addTitle;
cell.lblCity.text=[currentAddress objectForKey:@"recip_cityid"];
cell.lblRecipentCode.text=[currentAddress objectForKey:@"recip_code"];
// cell.lblState.text=[NSString stringWithFormat:@"%@",[[currentAddress objectForKey:@"recip_stateid"] stringValue]];
cell.lblState.text=[currentAddress objectForKey:@"recip_stateid"];
}
@catch (NSException *exception) {
NSLog(@" Exception hit %@",exception);
}
return cell;
}
每个东西都可以正常工作(NSDictionary * currentAddress)返回字符串值,但是在cell.lblCity.text与Integr值交互的位置它会显示异常。
感谢大家给你重要时间并回答:)
答案 2 :(得分:0)
我担心你的价值观并不像你期望的那样。
看起来像“temporaryAddArray”是NSNumber不是数组而其他东西不是NSNumber但它是NSString。
在使用objectForKey:
从JSON分配值之前,请通过显示以下内容检查其类型:
NSLog(@"%@", [variable class]);
并确保他们在JSON中预期类型,因为其中一些不是。 如果您粘贴从API获得的JSON,那么我会完全指出问题。
答案 3 :(得分:0)
self.temporaryAddArray = [tempAddress objectForKey:@"Android"];
这是问题......
确保[tempAddress objectForKey:@“Android”]在加载tableview后返回NaArray值。
这样做可以解决您的问题。
[AFRequestmanager POST:tempUrlAddress parameters:urlParams success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Responce Parameter %@",responseObject);
NSDictionary *tempAddress= (NSDictionary *)responseObject;
[self.activityIndicatorView stopAnimating];
id android = [tempAddress objectForKey:@"Android"];
if (if([android isKindOfClass:[NSArray class]]){
//Is array
self.temporaryAddArray =[android mutableCopy];
[self.tableview reloadData];
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Errorsss parameters %@",error);
}];