2016-06-14 5 views
3

Eine Datei mit folgendem Inhalt:Swift Standard Library w/Extra-Symbole

public class Foo { 
    var x : Int = 0 
    var y : Unit? 
} 

, wenn sie als Teil einer 'MacOS-Framework' kompiliert erfolgreich ist (in Xcode 8 Beta). Beachten Sie, dass es keine import Anweisung gibt; Ich würde erwarten, dass das Symbol Unit nicht gebunden ist - aber anscheinend wird es von der neuesten MacOS-Grundlage gefunden.

Wie stelle ich sicher, dass die Datei ohne das Unit Symbol kompiliert wird?

Hinweis: Wenn ich von der Kommandozeile mit swift File.swift kompilieren, dann in der Tat ist Unit ungebunden, wie gewünscht:

File.swift:12:11: error: use of undeclared type 'Unit' 
    var y : Unit? 

und, wenn ich mit dem Swift Package Manager kompilieren dann Foundation nicht implizit importiert .

Also, wie ist Xcode Einfügen implizit import, die ich nicht brauche?

+1

Gleiches Problem hier. Ich habe [SwiftFoundation] [1] erstellt, bevor Swift Open Sourced war, und jetzt kann ich es nicht mehr in Xcode 8 verwenden. [1]: https://github.com/PureSwift/SwiftFoundation – ColemanCDA

Antwort

0

Wenn ein Framework bauen, erstellen Xcode eine Header-Datei von TheFramework.h, die Inhalte wie beinhaltet: Foundation

#import <Cocoa/Cocoa.h> 

//! Project version number for SBFrames. 
FOUNDATION_EXPORT double TheFrameworkVersionNumber; 

//! Project version string for SBFrames. 
FOUNDATION_EXPORT const unsigned char TheFrameworkVersionString[]; 
#endif 

die Aufnahme von Cocoa.h Importe. Um zu vermeiden, dass Foundation eingegeben wird, bearbeiten Sie TheFramework.h, um leer zu sein.

Verwandte Themen