Objective c 有没有办法将对象映射到基本体?
这可能是一个假设性的问题,我不确定 我来自C#背景,我总是错过Objective-C中的面向对象的原语。相反,你必须无休止地从Objective c 有没有办法将对象映射到基本体?,objective-c,cocoa,macos,map,primitive,Objective C,Cocoa,Macos,Map,Primitive,这可能是一个假设性的问题,我不确定 我来自C#背景,我总是错过Objective-C中的面向对象的原语。相反,你必须无休止地从BOOL和int转换到NSNumber,然后再转换回来,产生笨拙且可能有缺陷的代码 从技术上讲,是否可以将所有基本值类型(如int、BOOL、float)全局映射到它们面向对象的计数器块,即NSNumber?我不这么认为,我也不认为这对您有多大好处。最好随波逐流。如果您不忽略编译器警告,这将很少导致错误代码。技术上可能吗?当然完全是 请参阅CF*字典和/或NSMapTab
BOOL
和int
转换到NSNumber
,然后再转换回来,产生笨拙且可能有缺陷的代码
从技术上讲,是否可以将所有基本值类型(如
int
、BOOL
、float
)全局映射到它们面向对象的计数器块,即NSNumber
?我不这么认为,我也不认为这对您有多大好处。最好随波逐流。如果您不忽略编译器警告,这将很少导致错误代码。技术上可能吗?当然完全是
请参阅CF*字典
和/或NSMapTable
。两者都允许在Objective-C实例和原语和/或非Objective-C类型之间进行映射
显然,您必须根据需要编写一些代码来进行查找(或者修改编译器来为您进行查找)。总的来说,这样做可能不值得,因为它会很复杂,并且会提供更多的移动部件来失败。您的意思是“您必须无休止地从[primitive Type]转换为NSNumber,然后再转换回来”?我很少在我的应用程序中这样做;有时我这样做,但很少。你为什么要转换?核心数据。你不能在持久化模型中存储基本值,这是理所当然的。我只希望Cocoa的基本值是实际对象。