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