Swift编译器是编译未使用的函数还是忽略它们?
答案 0 :(得分:3)
未使用的功能会使您的程序更大。
这很容易测试。创建了一个新的Swift应用程序作为单一视图应用程序(iOS)。在生成的ViewController.swift中,添加一个函数。执行构建(Command-B)并检查产品的构建文件夹。这通常是:
~/Library/Developer/Xcode/DerivedData/
<AppName>-<IDString>/Build/Products/Debug-iphoneos/
<AppName>.app/
检查&lt; AppName&gt;。
的文件大小注释掉该功能并再次进行构建。文件大小会更小。
我创建了一个名为SwiftSandbox的应用程序并添加了这个:
func doSomething() -> NSString {
var v: NSMutableString = NSMutableString(string: "MyString is Funny")
v.replaceCharactersInRange(NSMakeRange(3, 3), withString: "World")
return v
}
使用此功能构建时,我在bash中看到了这一点:
-rwxr-xr-x 1 test staff 213648 Apr 27 11:33 SwiftSandbox*
功能已注释掉:
-rwxr-xr-x 1 test staff 142992 Apr 27 11:33 SwiftSandbox*
请注意,我没有更改Xcode中的任何优化设置,因此我无法确定会产生什么样的影响。