bas*_*ibe 20 struct objective-c key-value-coding
我有一个MVC应用程序.该模型具有一个结构属性NSSize.这是可写的:
- (void)setSize:(NSSize)aSize;
Run Code Online (Sandbox Code Playgroud)
视图NSSize使用键值编码设置它.但是,你不能对结构进行键值编码,所以我把它包装在一个NSValue像这样的对象中:
[theView setValue:[NSValue valueWithSize:mySize]
forKey:@"theModel.size"];
Run Code Online (Sandbox Code Playgroud)
据我所知,这应该不起作用,因为访问器需要一个结构而不是一个结构NSValue.但它完美无缺.奇妙的.
这怎么可能?
kub*_*ubi 12
向下滚动到" Wrapping and Unrarapping Structs ",但这里是要点:
setValue:forKey:确定指定键的相应访问者或实例变量所需的数据类型.如果数据类型不是对象,则使用适当的-<type>Value方法从传递的对象中提取值.
顺便说一句,谢谢你提出这个问题!这是那些一直"正常工作"的可可物之一,我从未认为它是如何完成的并不明显.
| 归档时间: |
|
| 查看次数: |
2245 次 |
| 最近记录: |