有没有办法将对象映射到基元?

时间:2011-01-21 14:09:03

标签: objective-c cocoa macos map primitive

这可能是一个假设的问题,我不确定。

来自C#背景,我总是在Objective-C中错过了面向对象的原语。相反,您必须无休止地从BOOLint转换为NSNumber并再次返回,从而创建笨拙且可能错误的代码。

技术上是否可以将所有原始值类型(例如intBOOLfloat等)全局映射到面向对象的对象,即{ {1}}?

2 个答案:

答案 0 :(得分:1)

技术上可行吗?当然。完全。

请参阅CF*Dictionary和/或NSMapTable。两者都允许Objective-C实例与原始和/或非Objective-C类型之间的映射。

你显然必须编写一些代码来根据需要进行查找(或者修改编译器为你完成。总的来说,可能不值得这么做,因为它会很复杂并且提供更多移动部件失败。

答案 1 :(得分:0)

我不这么认为,也不认为这对你有好处。最好只是顺其自然。如果你不忽略编译器警告,这很少会导致错误的代码。