Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSDictionary未正确存储CGRect?_Iphone_Objective C_Ios_Ipad - Fatal编程技术网

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中,因此该方法没有改变。