我有一些框架代碼,這是否:的iOS雙方法參數故障
#ifdef USE_DOUBLE
typedef double real;
#else
typedef float real;
#endif
但是,當我嘗試使用此類型時USE_DOUBLE
是定義(那麼真實==雙),像這樣:
- (id) initSomeObject:(real)arg andSomeOtherStuff:(id)thing
{
self = [super init];
if (self)
{
field = arg;
}
}
[someObject initSomeObject:2.0 andSomeOtherStuff:nil];
arg
值被完全刪除,顯示爲5.3 ... e-315。 但是,如果我切換USE_DOUBLE
off,2.0
的值完美工作。這是最新的iOS 5+,在iPhone 4上使用Xcode 4.3.3和LLVM 3.1。iOS不能很好地處理雙打?我的USE_DOUBLE
標誌是否應該一直未被解除?
雙重類型絕對支持。可能並非所有文件都看到相同的類型。例如,一些文件看到真實的雙倍,但其他一些文件看到真正的浮動 –
什麼類型有你的'領域?也許有從'real'到'field'的隱式轉換,如果'double'存在缺陷? –