我想在我的表中添加一列。此列已添加到作为 SAP 系统的后端数据库中。我还可以看到首次连接到 SAP 系统时,该值正在提取中填充。成功登录后,它运行材料提取功能模块并返回一个列"价格",我需要将其添加到 xcode 中的应用程序中。
请帮助我。
错误:"终止于NSException类型的未捕获异常"由于未捕获的异常"NSInvalidArgumentException"而终止应用程序,原因:"* setObjectForKey:对象不能为零(键:itemPrice)" 第一个抛出调用堆栈:
if(!found){
NSMutableDictionary *mDic = [[NSMutableDictionary alloc] init];
[mDic setObject:[dic valueForKey:@"itemId"] forKey:@"itemId"];
[mDic setObject:[dic valueForKey:@"itemR"] forKey:@"itemR"];
[mDic setObject:[dic valueForKey:@"itemQty"] forKey:@"itemQty"];
[mDic setObject:[dic valueForKey:@"itemDesc"] forKey:@"itemDesc"];
[mDic setObject:[dic valueForKey:@"itemPack"] forKey:@"itemPack"];
[mDic setObject:[dic valueForKey:@"itemUOM"] forKey:@"itemUOM"];
[mDic setObject:[dic valueForKey:@"itemNACS"] forKey:@"itemNACS"];
[mDic setObject:[dic valueForKey:@"itemPrice"] forKey:@"itemPrice"]; // This is where the error is occuring.
int qty = [[dic valueForKey:@"itemQty"] intValue];
// float price = [[dic valueForKey:@"itemPrice"] floatValue];
// price = price * qty;
// [mDic setObject:[NSString stringWithFormat:@"%.2f", price] forKey:@"itemPrice"];
mQty = qty;
[mDic setObject:[dic valueForKey:@"itemLastSold"] forKey:@"itemLastSold"];
[items addObject:mDic];
[mDic release];
}
Its actually not being retrieved from dic dictionary variable.
This is the code for adding that itemPrice to the table
int mQty;
//DELETE AND RE-ADD
for (int i=0; i<[items count]; i++) {
if([[dic valueForKey:@"itemId"] isEqualToString:[[items objectAtIndex:i] valueForKey:@"itemId"]]){
NSLog(@"qty %@",[dic valueForKey:@"itemQty"]);
int qty = [[dic valueForKey:@"itemQty"] intValue];
qty = qty + [[[items objectAtIndex:i] valueForKey:@"itemQty"] intValue];
NSDictionary *d = [items objectAtIndex:i];
NSLog([d description]);
[[items objectAtIndex:i] setValue:[NSString stringWithFormat:@"%d", qty] forKey:@"itemQty"];
found = YES;
[items removeObjectAtIndex:i];
NSMutableDictionary *mDic = [[NSMutableDictionary alloc] init];
[mDic setObject:[dic valueForKey:@"itemId"] forKey:@"itemId"];
[mDic setObject:[dic valueForKey:@"itemR"] forKey:@"itemR"];
[mDic setObject:[NSString stringWithFormat:@"%d", qty] forKey:@"itemQty"];
[mDic setObject:[dic valueForKey:@"itemDesc"] forKey:@"itemDesc"];
[mDic setObject:[dic valueForKey:@"itemPack"] forKey:@"itemPack"];
[mDic setObject:[dic valueForKey:@"itemUOM"] forKey:@"itemUOM"];
[mDic setObject:[dic valueForKey:@"itemNACS"] forKey:@"itemNACS"];
[mDic setObject:[dic valueForKey:@"itemPrice"] forKey:@"itemPrice"]; //added price column
mQty = qty;
[mDic setObject:[dic valueForKey:@"itemLastSold"] forKey:@"itemLastSold"];
// [items insertObject:mDic atIndex:0];
[items addObject:mDic];
[mDic release];
break;
}
你不能把 nil 放到 NSMutableDictionary 中。如果 dic 可能没有此键,则需要执行以下操作来防止崩溃:
if ([dic valueForKey:@"itemPrice"] != nil) {
[mDic setObject:[dic valueForKey:@"itemPrice"] forKey:@"itemPrice"];
}
或者,您需要调查为什么 dic 不包含 itemPrice 键。