je rencontre une erreur
[__NSCFNumber length]: sélecteur non reconnu envoyé à l'instance 0x15580c90 2014-02-18 15: 10: 49.490 CIB [1706: 60b] * * Arrêt de l'application en raison de l'exception non interceptée 'NSInvalidArgumentException', raison: '- [__ NSCFNumber length] : sélecteur non reconnu envoyé à 0x15580c90' exemple * pile Premier appel de touche: (0x2da18e83 0x37d756c7 0x2da1c7b7 0x2da1b0af 0x2d969dc8 0x2e33b695 0x2e33b169 0x301ab2fd 0x1603ad 0x302cf315 0x302776cd 0x30276ef1 0x3019d353 0x2fe23943 0x2fe1f167 0x2fe1eff9 0x2fe1ea0d 0x2fe1e81f 0x2fe1854d 0x2d9e3f69 0x2d9e18f7 0x2d9e1c43 0x2d94c471 0x2d94c253 0x326862eb 0x30201845 0x113de1 0x3826eab7) libc ++ abi.dylib: terminaison avec une exception non interceptée de type NSException
J'ai une boucle ici. du tableau dans Json à ma liste de tâches de modèle, puis stocké dans NSMutableArray _tasklist
NSArray *taskJson = [json objectForKey:@"fOTaskListModelWss"];
for (NSDictionary *dictCQ in taskJson) {
NSLog(@"TASKLIST: %@", [dictCQ objectForKey:@"foTaskListModelWs"]);
NSDictionary *datadic = [dictCQ objectForKey:@"foTaskListModelWs"];
TaskList *task = [[TaskList alloc]init];
[task setTaskCount:datadic[@"count"]];
[task setFuncCd:datadic[@"funcCd"]];
[task setFuncCdDscp:datadic[@"funcCdDscp"]];
[task setRequestStatus:datadic[@"requestStatus"]];
[task setRole:datadic[@"role"]];
[_taskList addObject:task];
}
alors voici mon code dans cellForRowAtRowPathIndex
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString * simpleTableIdentifier = @"MenuTableViewCell";
MenuTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MenuTableViewCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
TaskList *txn = [_taskList objectAtIndex:indexPath.row];
cell.titleLabel.text = txn.funcCdDscp;
cell.totalCountLabel.text = txn.taskCount;
return cell;}
cell.titleLabel.text = txn.funcCdDscp;
cell.totalCountLabel.text = txn.taskCount;
L'un d'eux (je ne sais pas lequel, mais je pense que ce serait taskCount
) est un NSNumber. Le texte prend une chaîne NSString.
cell.titleLabel.text = txn.funcCdDscp;
cell.totalCountLabel.text = [txn.taskCount stringValue];
OR
Utilisez ceci car c'est best solution
cell.totalCountLabel.text = [NSString stringWithFormat:@"%@",txn.taskCount];
J'espère que ce qui suit vous aidera si vous manipulez des données JSON à partir d'un service Web
cell.textLabel.text=[NSString stringWithFormat:@"%@",[[JsonDictionaryObject objectForKey:@"Respected_Key_Name"]objectAtIndex:indexPath.row]];
Ici, il attend NSString
au lieu de NSNumber
, c'est pourquoi il se bloque. Convertissez-le en NSString
, il sera alors résolu.