Iphone NSDictionary未正确存储CGRect?
我似乎在将Iphone NSDictionary未正确存储CGRect?,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,我似乎在将CGRect存储到NSDictionary中时遇到问题。我正在使用的代码: dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Crocodile", [NSValue valueWithCGRect:CGRectMake(100,100,200,200)], nil]; 从我读到的内容来看,这应该将我的CGRect包装成一个NSValue并存储到字典中 但是,当我尝试NSLogit时,该值返回为{{0,0},{0,0}
CGRect
存储到NSDictionary
中时遇到问题。我正在使用的代码:
dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Crocodile", [NSValue valueWithCGRect:CGRectMake(100,100,200,200)], nil];
从我读到的内容来看,这应该将我的CGRect
包装成一个NSValue
并存储到字典中
但是,当我尝试NSLog
it时,该值返回为{{0,0},{0,0}
NSLog(@"Crocodile value is: %@", NSStringFromCGRect([[dictionary objectForKey:@"Crocodile"] CGRectValue]));
我已经检查了字典的数量,这些条目似乎已插入。我不确定这在哪里失败了。我还尝试通过创建一个CGRect
var,然后创建一个NSValue
var,并将其粘贴到字典中,以获得相同的结果,手动将其分解
谢谢你的帮助。谢谢
谢谢。参数的顺序应该是(object,key,object,key,…),因此在代码中,对象是
@“鳄鱼”
,键是rect
交换它们,它应该可以工作:
dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
[NSValue valueWithCGRect:CGRectMake(100,100,200,200)], // object first…
@"Crocodile", // …then key
nil];
请注意,键不必是NSString的实例,它们可以是符合NSCopying的类的任何实例。您可以将其存储为NSString-
NSStringFromCGRect(<#CGRect rect#>)
NSStringFromCGRect()
然后恢复健康
CGRectFromString(<#NSString *string#>)
CGRectFromString()
祝你好运哇,你说得对。我是这样做的:@user339946我会联系那篇文章的作者,告诉他/她代码是错误的。啊,公平地说,这篇文章是在2001年发表的/@用户339946,这并不意味着一切正常。由于Mac OS X v10.0.+1有助于将动画数据收集到NSDictionary中,因此该方法没有改变。