[英]How does swift know which files to import?
我正從Objective-C領域涉足Swift,並且對Swift的導入功能感到好奇。 我發現不需要導入自己的類,例如:
Objective-C的:
#import <UIKit/UIKit.h>
#import "CustomObject.h"
CustomObject* newObject = ...
迅速:
import UIKit
//no need to import CustomObject
var newObject: CustomObject...
我的問題是,如何迅速做到這一點? 它在哪里尋找自動導入的.swift文件? 僅僅是添加到項目目標中的任何.swift文件嗎? 我不想隨便揮動一下,然后在某些東西不像魔術一樣進口時就被驚喜嚇住了!
我不確定我是否會優雅地解釋這一點,但是在這里...
假設您要創建一個名為Battlefront
的應用程序。 當您向應用程序添加文件/類時,實際上它們已添加到應用程序的模塊,即Battlefront
模塊中。 假設您創建了一個名為Hero
的類,那么您的類不僅是Hero
,它是Battlefront.Hero
但是由於您是在Battlefront
模塊的上下文中使用它的,因此在使用您的類時無需指定模塊名稱類。
Swift中的導入主要與模塊一起使用。 我想您可以在Swift中導入單個類,但是我沒有嘗試過,因此我無法對此發表評論。 假設您要導入CoreData
,那么您要使用import CoreData
導入整個模塊。
默認情況下,類使用internal
訪問控制。 如果要在Battlefront
公開類以供其他模塊使用,則必須將類指定為public:
// Default is internal, not available outside Battlefront
class Hero {
}
// Public class, is available outside Battlefront
public class Weapon {
}
您可以在此處閱讀有關訪問控制的更多信息 。 我想您可以簡化與Target
等於Module
的關系,但這只是捷徑。 不過,這可能是理解該概念的開始。
簡短的答案:是的,Xcode可訪問項目中的所有.swift文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.