Swift编译器是否忽略未使用的函数?

时间:2015-04-27 15:13:43

标签: ios swift compilation

Swift编译器是编译未使用的函数还是忽略它们?

1 个答案:

答案 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中的任何优化设置,因此我无法确定会产生什么样的影响。