为什么MapKit框架必须链接到每个文件而CoreData框架不能?

时间:2017-02-23 09:14:36

标签: ios swift xcode

我用Swift编写的项目中的链接框架和库:

enter image description here

假设我的项目中有两个文件:AppDelegate.swiftViewController.swift

我在AppDelegate.swift中的导入声明:

import UIKit
import Foundation
import CoreData
import MapKit

因此,我可以使用例如:NSManagedObjectMKMapView类。

ViewController.swift我没有任何导入声明,但我可以使用NSManagedObjectMKMapView相对的地方。为什么呢?

不应该在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;

1 个答案:

答案 0 :(得分:1)

  • Swift适用于模块
  • 同一模块中的其他文件无法显示每个文件。
  • 只能通过import语句在外部访问在不同模块中创建的每个类。框架是不同的模块。如果您需要访问框架,则需要将其导入每个文件,以便您使用它。

  • Bridging-Header.h文件将其他模块/框架分发到存在此标头的模块中的每个文件

  • 如果模块 A 导入模块 B ,并且您需要在 C 模块中访问它们,则足以在 C 模块中导入模块 A