我用Swift编写的项目中的链接框架和库:
假设我的项目中有两个文件:AppDelegate.swift
和ViewController.swift
我在AppDelegate.swift
中的导入声明:
import UIKit
import Foundation
import CoreData
import MapKit
因此,我可以使用例如:NSManagedObject
和MKMapView
类。
在ViewController.swift
我没有任何导入声明,但我可以使用NSManagedObject
与MKMapView
相对的地方。为什么呢?
不应该在Swift中,在一个文件中导入的一个框架应该对其他文件可见吗?为什么CoreData
对所有人都可见,但MapKit
不是?
我还在项目中使用Project-Bridging-Header.h
以及以下导入语句:
@import AFNetworking;
@import Crashlytics;
@import Fabric;
@import FBSDKCoreKit;
@import FBSDKLoginKit;
@import MagicalRecord;
@import MTBBarcodeScanner;
@import QRCode;
@import SVProgressHUD;
答案 0 :(得分:1)
只能通过import
语句在外部访问在不同模块中创建的每个类。框架是不同的模块。如果您需要访问框架,则需要将其导入每个文件,以便您使用它。
Bridging-Header.h
文件将其他模块/框架分发到存在此标头的模块中的每个文件。
如果模块 A 导入模块 B ,并且您需要在 C 模块中访问它们,则足以在 C 模块中导入模块 A 。