我在Swift Beta中实现了一个算法,并注意到性能非常差.在深入挖掘之后,我意识到其中一个瓶颈就像排序数组一样简单.相关部分在这里:
let n = 1000000
var x = [Int](repeating: 0, count: n)
for i in 0..<n {
x[i] = random()
}
// start clock here
let y = sort(x)
// stop clock here
Run Code Online (Sandbox Code Playgroud)
在C++中,类似的操作在我的计算机上需要0.06秒.
在Python中,它需要0.6秒(没有技巧,只有y =排序(x)表示整数列表).
在Swift中,如果我使用以下命令编译它需要6秒:
xcrun swift -O3 -sdk `xcrun --show-sdk-path --sdk macosx`
Run Code Online (Sandbox Code Playgroud)
如果我使用以下命令编译它需要多达88秒:
xcrun swift -O0 -sdk `xcrun --show-sdk-path --sdk macosx`
Run Code Online (Sandbox Code Playgroud)
Xcode中使用"Release"与"Debug"构建的计时相似.
这有什么不对?与C++相比,我可以理解一些性能损失,但与纯Python相比,速度没有降低10倍.
编辑:天气注意到,改变-O3以-Ofast使这个代码的运行几乎一样快如C++版本!但是,-Ofast更改了语言的语义 - 在我的测试中,它禁用了对整数溢出和数组索引溢出的检查.例如,使用-Ofast以下Swift代码以静默方式运行而不会崩溃(并打印出一些垃圾):
let …Run Code Online (Sandbox Code Playgroud) 我升级到Xcode 6 beta 4,现在我的应用程序不断崩溃
Interface Builder文件中的未知类X.
它崩溃了,因为据说Xcode找不到我在Storyboard中链接的自定义类,但它显示它们在Xcode界面中正确链接.
我很肯定一切都是正确的.我唯一的另一个选择可能是删除整个故事板文件并从头开始,因为它可能会以某种方式损坏.
编辑:我还想补充一点,我尝试清理,重置模拟器,弄乱构建阶段等.这些都不起作用.
这次崩溃是一个阻塞问题,基本上我使用以下步骤来重现问题:
应用程序在启动时立即崩溃,这是控制台日志:
dyld: Library not loaded: @rpath/FrameworkTest03.framework/FrameworkTest03
Referenced from: /var/mobile/Applications/FA6BAAC8-1AAD-49B4-8326-F30F66458CB6/FrameworkTest03App.app/FrameworkTest03App
Reason: image not found
Run Code Online (Sandbox Code Playgroud)
我试图在iOS 7.1和8.0设备上构建,它们都有相同的崩溃.但是我可以构建应用程序并在模拟器上运行良好.另外我知道我可以在Link Binary With Libraries中将框架从Required更改为Optional,但它没有完全解决问题,当我创建Dog实例时应用程序崩溃了.在设备和模拟器上的行为是不同的,我怀疑我们不能使用测试版的Xcode分发设备框架.任何人都可以阐明这一点吗?
我用Xcode6 beta6打开了一个现有的iOS项目,Xcode为Storyboard和Xib文件列出了以下警告:
自动首选最大布局宽度在8.0之前的iOS版本上不可用
我尝试通过将宽度设置为显式来解决警告,如下所示:

然而,这并未解决警告.他们怎么能被删除?
安装Xcode 6后,我的设备移动到灰色部分Ineligible Devices,我无法选择它们作为部署目标:

更新:
在所有版本中都会发生此错误Xcode 6.x.x.造成这个问题的原因有很多种
请查看此解决方案列表 以获取更多详
我想UIColor在我的应用程序中使用Xcode 6 创建一个类别.但问题是在Xcode 6中没有Objective-C类别文件模板.
有没有在Xcode 6中创建类别的选项?
他们之间有什么区别?我找不到任何关于它的文件.曾经有一些我在谷歌搜索中找到的,但它现在已经消失了:https://developer.apple.com/library/ios/recipes/xcode_help-interface_builder/articles-storyboard/StoryboardSegue.html
每当我尝试在Xcode 6 Beta 4中运行我的应用程序时,我收到错误:
The file "MyApp.app" couldn't be opened because you don't have permission to view it.
Run Code Online (Sandbox Code Playgroud)
无论我的目标是什么模拟器或设备,都会出现此错误.
我试过了:
有没有其他人遇到这个问题并找到了解决方案?

为什么不ProjectName-Prefix.pch自动创建Xcode 6?
是否不再需要预编译头?
我应该在哪里写下之前的代码ProjectName-Prefix.pch?
我有一个适用于Xcode6-Beta1和Xcode6-Beta2的iOS7和iOS8应用程序.但是对于Xcode6-Beta3,Beta4,Beta5,我正面临着iOS8的网络问题,但在iOS7上一切正常.我收到了错误"The network connection was lost.".错误如下:
错误:错误域= NSURLErrorDomain代码= -1005"网络连接丢失." UserInfo = 0x7ba8e5b0 {NSErrorFailingURLStringKey =,_ kCFStreamErrorCodeKey = 57,NSErrorFailingURLKey =,NSLocalizedDescription =网络连接丢失.,_ kCFStreamErrorDomainKey = 1,NSUnderlyingError = 0x7a6957e0"网络连接丢失."}
我使用AFNetworking 2.x和以下代码片段进行网络调用:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager setSecurityPolicy:policy];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:<example-url>
parameters:<parameteres>
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@“Success: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
Run Code Online (Sandbox Code Playgroud)
我试过NSURLSession但仍然收到同样的错误.
xcode6 ×10
ios ×7
ios8 ×3
swift ×3
xcode ×2
autolayout ×1
categories ×1
crash ×1
dyld ×1
objective-c ×1
performance ×1
segue ×1
sorting ×1
uistoryboard ×1
xcode5 ×1
xcode6-beta5 ×1