首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 7.1在更新到Xcode5.1后出现错误

iOS 7.1在更新到Xcode5.1后出现错误
EN

Stack Overflow用户
提问于 2014-03-13 15:50:06
回答 3查看 6.4K关注 0票数 5

我最近将我的Xcode更新到了5.1版本。更新后,它可以在除iOS 7.1之外的所有模拟器上正常运行,在该模拟器中,它给出了一个mach-O链路错误。此外,在“Build setting”选项卡中只有一个64位架构选项。在我看来,这是所有问题和错误的原因。有没有人知道这个问题的原因&如何解决它?

以下是我得到的一些警告和错误:

警告:

代码语言:javascript
复制
Values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead

错误:

代码语言:javascript
复制
Symbol(s) not found for architecture x86_64

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2014-03-13 16:09:02

Xcode 5.1更改了标准项目设置。其中包括项目的arm64架构--但是很多第三方项目还不支持它,所以我建议再次从架构的设置中删除它(留给你armv7armv7s)。将其保留在valid architectures设置中-这指定了它可以在哪些体系结构上运行。

它还引入了一些额外警告的默认激活,比如将类型转换为长警告-这里的计数相同,当你使用其他库(作为源代码)时,你可能会得到很多你不能(或不想)做的警告。您可以为这些项目再次禁用警告,或者选择不立即更新您的项目设置。

票数 14
EN

Stack Overflow用户

发布于 2014-03-19 14:42:46

构建设置->体系结构

您可能已经设置了标准体系结构,对吧?

从Xcode5.1开始,标准体系结构包含arm64,您还没有准备好支持它。

选择其他..双击$(ARCHS_STANDARD)并将其更改为$(ARCHS_STANDARD_32_BIT)

注意:这是一个临时修复。您可能正在使用一些不带64位切片的静态库。看看是否有可用的,然后将架构切换回标准架构。

票数 13
EN

Stack Overflow用户

发布于 2014-03-14 22:12:14

实际上,XCode现在包含了arm64架构。NSInteger现在完全不同了,因为它是在NSObjCRuntime.h中定义的:

代码语言:javascript
复制
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif

为了解决这个问题,你应该改进你的代码库。首先,你必须保持真正的一致性。仅将NSInteger赋值给NSInteger,而不是int。避免所有类型的:

int i= aString integerValue

NSInteger i= aString integerValue

此外,您可能遇到的另一个问题是,当您想要从一个值创建一个字符串时。你可以这样做:

代码语言:javascript
复制
#define cL(v)    (long)(v)
#define cUL(v)   (unsigned long)(v)

NSLog(@"array.count: %ld", cUL(anArray.count));

array.count在armv7(s)下返回一个无符号整型,在arm64下返回一个无符号长整型。通过总是转换成无符号的长整型,你将不再面临任何警告,更重要的是,不会得到任何bug。

这个“逻辑”是由苹果自己在一些技术谈话视频上介绍的:https://developer.apple.com/tech-talks/videos/ (视频“设计现代iOS游戏”)。播放10M00s左右的视频)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22372264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档