gpt4 book ai didi

objective-c - NSValue 是如何发挥它的魔力的?

转载 作者:太空狗 更新时间:2023-10-30 03:13:46 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com