- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 MVC 应用程序。该模型有一个属性,它是一个结构 NSSize
。它可以这样写:
- (void)setSize:(NSSize)aSize;
View 使用键值编码设置此 NSSize
。但是,您不能对结构进行键值编码,所以我将它包装在 NSValue
对象中,如下所示:
[theView setValue:[NSValue valueWithSize:mySize]
forKey:@"theModel.size"];
根据我的理解,这应该不起作用,因为访问器需要一个结构而不是 NSValue
。但它工作得很好。神奇地。
这怎么可能?
最佳答案
向下滚动到“Wrapping and Unwrapping Structs”,但这里是要点:
setValue:forKey:
determines the data type required by the appropriate accessor or instance variable for the specified key. If the data type is not an object, then the value is extracted from the passed object using the appropriate-<type>Value
method.
顺便说一句,感谢您提出这个问题!这是 cocoa 一直“有效”的东西之一,我从没想过它是如何完成的。
关于objective-c - NSValue 是如何发挥它的魔力的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2495484/
你知道有什么 Maven 插件/mojo 能够做连接点或链接吗? 最佳答案 maven junction 插件怎么样? http://pyx4j.com/snapshot/pyx4j/pyx4j-ma
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我是一名优秀的程序员,十分优秀!