一般的Objective-C、Cocoa和编译语言都是新手,所以请原谅我的无知:
UIImage *myImage = [UIImage imageNamed:@"1-filter.jpg"];
NSLog(@"myImage.size=%@", myImage.size);线程1中的结果:程序接收到信号:"EXC_BAD_ACCESS“。
为什么?如何获得UIImage的大小?
发布于 2011-12-27 01:44:31
大小是一种结构。
对NSLog输出使用size.width, size.height或NSStringFromCGSize(myImage.size)。
发布于 2011-12-27 01:46:43
对于初学者来说,这是一个微妙的、恼人的错误。(实际上我上个星期才碰到这个问题。)
在NSLog中使用格式字符串%@时,参数必须是某种Objective-C对象。(在幕后,当您执行NSLog(@"%@", foo)时,系统会调用[foo description]来确定要输出的字符串。如果您传递给NSLog的变量不是Objective-C对象,系统将尝试向不是对象的对象发送消息,然后抛出此错误。)
在这种特殊情况下,您将获得一个整数,因此请在格式字符串中将%@替换为%d,以确保一切正常。
此外,正如Eugene提到的,您希望访问size对象的一部分。所以试一试
NSLog(@"size.height=%d", myImage.size.height);编辑:这实际上应该是%f而不是%d,请阅读关于这个答案的评论。
https://stackoverflow.com/questions/8637872
复制相似问题