Way*_* Lo 0 c# types objective-c ambiguity
在c#我可以声明object o;
然后我可以分配o=(float)5.0;
或o="a string."
是否有Objective-C的等价物?我尝试使用,id
但它不采用像float或integer这样的原始类型.谢谢你的帮助.
Bar*_*ark 11
Objective-C在CLR的单词中没有"统一类型系统".换句话说,作为C的超集,Objective-C的原始类型与对象实例完全不同.该id
类型可以将引用(OS X/iPhone Objective-C运行时中的指针)存储到任何对象实例.C的原始类型(例如int
,float
等)必须包装NSValue
或NSNumber
分配给类型id
.当然,这正是C#编译器正在做的事情.只是在C#中,你不必明确地进行(un)拳击转换.
很快,代码就像
float val;
id obj = [NSNumber numberWithFloat:val];
...
float v = [obj floatValue];
Run Code Online (Sandbox Code Playgroud)
如果不幸的是,按现代标准来说,它将成为第二天性.
归档时间: |
|
查看次数: |
1192 次 |
最近记录: |