簡體   English   中英

swift如何知道要導入哪些文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM