NSDictionary not properly storing CGRect?
我似乎在将
1 | dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Crocodile", [NSValue valueWithCGRect:CGRectMake(100,100,200,200)], nil]; |
从我读过的内容来看,这应该将我的
但是,当我尝试
1 | NSLog(@"Crocodile value is: %@", NSStringFromCGRect([[dictionary objectForKey:@"Crocodile"] CGRectValue])); |
我检查了我的字典数量,似乎插入了项目。我不确定这在哪里失败。我还尝试通过创建一个
任何帮助表示赞赏。谢谢
谢谢。
参数的顺序应该是 (object, key, object, key, ...),所以在你的代码中,对象是
交换它们,它应该可以工作:
1 2 3 4 | dictionary = [NSDictionary dictionaryWithObjectsAndKeys: [NSValue valueWithCGRect:CGRectMake(100,100,200,200)], // object first… @"Crocodile", // …then key nil]; |
请注意,键不需要是 NSString 的实例,它们可以是符合 NSCopying 的类的任何实例。
您可以将其存储为 NSString -
1 | NSStringFromCGRect(<#CGRect rect#>) |
然后用
恢复
1 | CGRectFromString(<#NSString *string#>) |
祝你好运