NSValue 是如何发挥其魔力的?
我有一个 MVC 应用程序。该模型有一个属性,即 struct NSSize
。它是可写的,如下所示:
- (void)setSize:(NSSize)aSize;
视图使用键值编码设置此NSSize
。但是,您不能对结构进行键值编码,因此我将其包装在 NSValue
对象中,如下所示:
[theView setValue:[NSValue valueWithSize:mySize]
forKey:@"theModel.size"];
据我了解,这应该不起作用,因为访问器需要一个结构而不是 <代码> NSValue 。但它工作得很好。神奇的是。
这怎么可能?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
向下滚动到“包装和展开结构”,但要点如下:
顺便说一句,感谢您提出这个问题!这是可可中一直“有效”的东西之一,我从来没有认为它是如何完成的并不明显。
Scroll down to "Wrapping and Unwrapping Structs", but here's the gist:
Btw, thanks for asking this question! This is one of those cocoa things that has always "just worked" and I never considered that it wasn't obvious how it was accomplished.