看板 MacDev 關於我們 聯絡資訊
請教一下 NSIntger在64bit編譯時會出現warning 應該是長度的差別 該怎麼去除warning 有什麼好方法嗎? ※ 引述《HateDebris (DebrisFlow)》之銘言: : Apple已經宣布iPhone 5s將會採用64-bit處理器, : Xcode內也多了一個64-bit的測試選項, : 有沒有人可以說明64-bit對開發者有何影響, : 有什麼地方需要注意的? : 謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.190.119
yuanruo:轉成long 或是long NSInteger 或是(long long) 12/18 22:56
uranusjr:NSInteger 在 64-bit 下直接就是 long 了 (不然你以為他 12/19 10:22
uranusjr:們是 typedef 爽的嗎...), 發文人的問題是在其他地方混用 12/19 10:23
uranusjr:了 int, 需要修正 (或明確轉型) 12/19 10:23
yuanruo:喔~那就在原本NSInteger的地方轉回(int) 我記得objc下 12/19 13:25
yuanruo:不管32位元和64位元NSinteger都佔用4位元空間吧 12/19 13:25
yuanruo:或是就原本用int地方改成NSInteger 他是自動定義會幫轉 12/19 13:29
不好意思 沒說清楚 像是是我用 NSLog(@"%d", SOME_NSINTEGER); 或 [NSString stringWithFormat:@"%d", SOME_NSINTEGER]; 我舊的project用xcode 5開起來編譯都沒問題 可是用xcode 5開新project到64bit編譯就會有warning(叫我用%ld) 實在不懂是那裡出了問題 ※ 編輯: fightword 來自: 114.32.197.140 (12/22 19:33)
yuanruo:根據官方文檔 你用NSInteger時 你輸出時改成(long) 用%ld 12/22 22:24
yuanruo:參考資料 http://tinyurl.com/m9rphjt 12/22 22:24
y大 我想是我敘述不清 改%ld我試過 問題這樣1個project 就要根據32bit或64bit分2個project 理論上 Xcode應該沒這麼笨吧? 有沒有辦法可以在管1個project上就作到? 設定值之類的
dreambird:你沒注意到改完%ld以後XCode還有建議你轉型嗎? 12/24 20:13
DLMC:給原po,y大提供的資料寫得很清楚,除了改成%ld外,還要 12/26 17:42
DLMC:cast 成 (long) 12/26 17:42
想問一下 這樣32bit不會被影響嗎? ※ 編輯: fightword 來自: 114.32.190.119 (12/27 09:43)
Blueshiva:這直接自己試一下就好了吧... 12/27 10:06