Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 有没有办法将对象映射到基本体?_Objective C_Cocoa_Macos_Map_Primitive - Fatal编程技术网

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

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

我来自C#背景,我总是错过Objective-C中的面向对象的原语。相反,你必须无休止地从
BOOL
int
转换到
NSNumber
,然后再转换回来,产生笨拙且可能有缺陷的代码


从技术上讲,是否可以将所有基本值类型(如
int
BOOL
float
)全局映射到它们面向对象的计数器块,即
NSNumber

我不这么认为,我也不认为这对您有多大好处。最好随波逐流。如果您不忽略编译器警告,这将很少导致错误代码。

技术上可能吗?当然完全是

请参阅
CF*字典
和/或
NSMapTable
。两者都允许在Objective-C实例和原语和/或非Objective-C类型之间进行映射


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

您的意思是“您必须无休止地从[primitive Type]转换为NSNumber,然后再转换回来”?我很少在我的应用程序中这样做;有时我这样做,但很少。你为什么要转换?核心数据。你不能在持久化模型中存储基本值,这是理所当然的。我只希望Cocoa的基本值是实际对象。