我有NSMutableArray
UIImage
名为 camImages 的scale
。然后我想获得图像的[[camImages objectAtIndex:i] scale] //doesn't return the desired scale property
[camImages.objectAtIndex:i].scale //doesn't work (Error: Property 'scale' not found on object of type 'id')
属性,但我似乎无法使用
UIImage *img;
img.scale //desired property
如果我有一个UIImage
,则可以获得该属性CGFloat
我是iOS&的新手Objective-C,我如何获得所需的属性?提前谢谢!
修改
[[camImages objectAtIndex:i] scale]将返回
NSDecimalNumberBehaviors
比例
返回小数分隔符后允许的位数。 (所需的)
- (short)scale返回值小数分隔符后允许的位数。
而所需的比例为{{1}}类型:
的UIImage
尺度
图像的比例因子。 (只读)
@property(非原子,只读)CGFloat规模讨论如果你加载一个 来自名称中包含@ 2x修饰符的文件的图像,比例为 设为2.0。您还可以在何时指定显式比例因子 从Core Graphics图像初始化图像。所有其他图像都是 假设比例因子为1.0。
如果乘以图像的逻辑大小(存储在大小中) 通过此属性中的值,您可以获得维度 以像素为单位的图像。
答案 0 :(得分:7)
让您的代码更易于阅读和调试:
UIImage *image = camImages[i];
CGFloat scale = image.scale;
答案 1 :(得分:3)
如果你有两个带有不同签名的scale
方法,编译器可能无法选择要使用的正确签名,所以你必须告诉编译器对象的类型,以便找到正确的签名
如果你真的想要一个行解决方案
[((UIImage *)[camImages objectAtIndex:i]) scale];
((UIImage *)[camImages objectAtIndex:i]).scale;
但请使用@rmaddy答案以提高可读性