获取valueForKey返回(null)
我想将一个值放入一个NSArray并稍后再次接收它。这里是我的代码:获取valueForKey返回(null)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[_system setValue:[_objects objectAtIndex:indexPath.row] forKey:@"selected"];
NSLog(@"%@", [_objects objectAtIndex:indexPath.row]);
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSLog(@"%@", [_system valueForKey:@"selected"]);
}
这里是日志结果:
2013-11-01 23:38:04.210 ClassPoints[187:60b] test
2013-11-01 23:38:04.211 ClassPoints[187:60b] (null)
我感到奇怪的是,即使在创建虚空阵列未正确加载值。
NSArray *testArray;
[testArray setValue:@"test" forKey:@"test"];
NSLog(@"%@", [testArray valueForKey:@"test"]);
任何人都可以对此有所了解吗?我完全失去了。谢谢!
一旦NSArray初始化完成,您将无法在其上添加/删除/编辑对象。这是一个NSMutableArray的用途。
'NSMutableArray * testArray; [testArray setValue:@“test”forKey:@“test”]; NSLog(@“%@”,[testArray valueForKey:@“test”]);'仍然返回(null) – user2946945
使您的NSArray
为NSMutableArray
,因此您可以编辑其中的对象和viewDidLoad,不要忘记初始化它。
-(void)viewDidLoad {
myMutableArray = [[NSMutableArray alloc] init];
}
还没有。这真的很奇怪,因为我知道我以前用过很多次,没有问题。有一些超小的东西我错过了。 – user2946945
尝试像这样使用NSMutableArray
和设置设定的setValue的使用setObject
API inspite。
NSMutableArray *testArray = [NSMutableArray array];
[testArray setObject:@"test" forKey:@"test"];
NSLog(@"%@", [testArray objectForKey:@"test"]);
没有可见的setObject和objectForKey接口 – user2946945
我没有得到,而且这个接口只适用于mutablearray –
首先,您需要使用要使用的集合类型的可变版本,然后您需要分配并初始化它们。那么除非你的_system(NSArray?)包含的对象是符合“selected”的关键值编码。 setValue:forKey
在每个数组元素上调用setValue:forKey。这同样适用于valueForKey:
。这就是为什么你孤立的例子不会工作。我想你想要一个NSMutableDictionary
然后你可以通过键获取/设置对象,而数组只能与索引一起工作。
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:yourObject forKey:yourKey];
id obj = [dictionary objectForKey:yourKey];
你解决了你的问题吗?请标记正确的答案,将此帖标记为已回答。 –