Re: [問題] 64-bit的處理器對開發者有何影響?

看板MacDev作者 (呼啦啦~)時間11年前 (2013/12/18 11:42), 編輯推噓2(2011)
留言13則, 5人參與, 最新討論串2/2 (看更多)
請教一下 NSIntger在64bit編譯時會出現warning 應該是長度的差別 該怎麼去除warning 有什麼好方法嗎? ※ 引述《HateDebris (DebrisFlow)》之銘言: : Apple已經宣布iPhone 5s將會採用64-bit處理器, : Xcode內也多了一個64-bit的測試選項, : 有沒有人可以說明64-bit對開發者有何影響, : 有什麼地方需要注意的? : 謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.190.119

12/18 22:56, , 1F
轉成long 或是long NSInteger 或是(long long)
12/18 22:56, 1F

12/19 10:22, , 2F
NSInteger 在 64-bit 下直接就是 long 了 (不然你以為他
12/19 10:22, 2F

12/19 10:23, , 3F
們是 typedef 爽的嗎...), 發文人的問題是在其他地方混用
12/19 10:23, 3F

12/19 10:23, , 4F
了 int, 需要修正 (或明確轉型)
12/19 10:23, 4F

12/19 13:25, , 5F
喔~那就在原本NSInteger的地方轉回(int) 我記得objc下
12/19 13:25, 5F

12/19 13:25, , 6F
不管32位元和64位元NSinteger都佔用4位元空間吧
12/19 13:25, 6F

12/19 13:29, , 7F
或是就原本用int地方改成NSInteger 他是自動定義會幫轉
12/19 13:29, 7F
不好意思 沒說清楚 像是是我用 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)

12/22 22:24, , 8F
根據官方文檔 你用NSInteger時 你輸出時改成(long) 用%ld
12/22 22:24, 8F

12/22 22:24, , 9F
12/22 22:24, 9F
y大 我想是我敘述不清 改%ld我試過 問題這樣1個project 就要根據32bit或64bit分2個project 理論上 Xcode應該沒這麼笨吧? 有沒有辦法可以在管1個project上就作到? 設定值之類的

12/24 20:13, , 10F
你沒注意到改完%ld以後XCode還有建議你轉型嗎?
12/24 20:13, 10F

12/26 17:42, , 11F
給原po,y大提供的資料寫得很清楚,除了改成%ld外,還要
12/26 17:42, 11F

12/26 17:42, , 12F
cast 成 (long)
12/26 17:42, 12F
想問一下 這樣32bit不會被影響嗎? ※ 編輯: fightword 來自: 114.32.190.119 (12/27 09:43)

12/27 10:06, , 13F
這直接自己試一下就好了吧...
12/27 10:06, 13F
文章代碼(AID): #1IiHcneH (MacDev)
文章代碼(AID): #1IiHcneH (MacDev)