我正在Xcode 5中开始新项目.我想使用iOS SDK 7部署目标来开发应用程序iOS 5.0.一旦我在Xcode中创建新项目并尝试将部署目标更改为5.0,我就收到此消息:
Applications including an arm64 slice are not compatible with versions of iOS
prior to 6.0
Adjust your Architectures build setting to not include arm64 in order to deploy
to releases prior to iOS 6.0.
Run Code Online (Sandbox Code Playgroud)
所以改变了架构Standard(没有64位).我编译,运行,但我真的不明白刚刚发生了什么.Xcode项目构建设置
的区别Architectures和Valid architectures设置有什么区别?
如果我设置Architectures为排除64位当我在64位iPhone或iOS模拟器上运行我的应用程序时会发生什么(我知道它有效,我只是好奇下面有什么问题)?
你能解释一下新的64位架构吗?

我想在Swift中制作一个应用程序,只需通过iPhone的麦克风录制,然后播放录制的声音.
为此,我想使用lib Superpowered这是一个带头文件的静态库.
为此,我尝试拖放项目中的.a和头文件(Xcode为我创建了一个桥接头文件),在Xcode> Target> General中添加了"链接框架和库"中的.a(等等) Xcode>目标>构建阶段>"链接二进制文件库"也可以在Xcode>目标>构建设置>搜索路径>库搜索路径中索引.h文件路径.
但是,我有错误"ld:未找到架构arm64的符号"与此处的XCode完全相同:架构arm64错误的未定义符号,我尝试了我在网上找到的所有解决方案,但仍然没有编译方式.
所以!
Superpowered为我们提供了一个示例应用程序来展示如何混合使用Objective-C++并在Swift项目中使用它们的lib(如果你想要https://github.com/superpoweredSDK/Low-Latency-Android-Audio-,这里有一个指向git的链接iOS-Audio-Engine).
以下是示例项目的一些屏幕截图,其中包含我理解的内容以及我不了解的内容:
Bridging-Header-File包含了我想在我的Swift代码中使用的lib方法的原型(我不喜欢这个,但如果它是唯一的方法......).
viewController文件,其中Swift中的代码是,我可以创建一个Superpowered对象,感谢Bridging-Header-File,并调用我放入它的方法.
和wtf我甚至不明白为什么这个Objective-C++文件在这里以及它包含什么.它无处不在,甚至不是他们的lib文件.
因此,考虑到这个示例项目,我创建了自己的项目,这里有一些截图:
同样的Bridging-Header-File在示例项目中除了我包含SuperpoweredIOSAudioIO.h所以我可以使用SuperpoweredIOSAudioIODelegate.
我的viewController文件,其中Swift中的代码是,我可以创建一个Superpowered对象感谢Bridging-Header-File,并调用我放入它的方法.
直到这里,它是伟大的,除了我不能为例子创建一个SuperpoweredRecorder对象.如果我尝试将SuperpoweredRecorder.h文件包含在我的Bridging-Header-File中,我会遇到以下错误:
所以我看到它是因为SuperpoweredRecorder.h包含一些.cpp文件而且我必须为cpp创建一个包装器(有点像我使用桥接头,没有?)但是包括.h和.mm文件我不喜欢我不知道我要把那个.mm文件放进去(代码是SuperpoweredRecorder.cpp什么?但是我无法访问它)
所以,是的,我对所有这些东西有点困惑,你能帮我理解如何在Swift项目中使用所有Superpowered lib吗?