作者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