Objective-C 运行时 - 如何使用 setValue 来设置 CGRect

标签 objective-c key-value-coding

当实例的属性是 CGRect 时,如何设置该属性。我想这样做:

CGRect rect = CGRectFromString(value);
[localClassObjectInstance setValue:rect forKey:key];

但是编译器不喜欢setValue;它说我正在将 CGRect 发送到不兼容类型“id”的参数。

谢谢

最佳答案

您必须将 CGRect 转换为 NSValue(反之亦然):


NSValue *myValue = [NSValue valueWithCGRect:rect];

NSValue 是一个对象(因此它的类型为“id”)。

然后你可以通过以下方式取回 CGRect:


CGRect myRect = [myValue CGRectValue];

关于Objective-C 运行时 - 如何使用 setValue 来设置 CGRect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10932297/

相关文章:

objective-c - ViewController 可能无法响应“方法”问题

objective-c - 如何以编程方式在日历中以与月份和星期相匹配的方式布局日期?

iPhone:从 Interface Builder 设置 Controller 变量

iphone - 每次应用程序进入前台时重新加载 UITableView

cocoa - 使用KVC生成SQL?

properties - 如何基于 NSString 类型键测试属性存在和类型?

cocoa - @firstObject 的集合对象运算符键值编码 KVC

ios - iPhone 6 plus 真机 UIScreen mainScreen 大小奇怪

cocoa-touch - 如何在iPhone的UIView上附加键值对?

cocoa - 在 Cocoa 中实现符合 KVO/绑定(bind)的桥接模式