在swift中,扩展NSManagedObjectContext不能在单独的文件中?

时间:2015-11-25 04:38:00

标签: ios swift core-data

在Xcode中,当我创建一个新文件时扩展NSManagedObjectContext类,在这个扩展文件中添加方法,编译项目并没有问题。

  

的NSManagedObjectContext + BaseModel.swift

import Foundation
import CoreData
import CoreDataStack

extension NSManagedObjectContext {

    public func insertObject<T: NSManagedObject>() -> T {
        guard let object = NSEntityDescription.insertNewObjectForEntityForName(T.modelName(), inManagedObjectContext: self) as? T
        else {
                fatalError("Invalid Core Data Model")
        }

        return object
    }

}

但是,当我在ViewController.swift中使用它时,如context.insertObject(),编译器报告错误说:

Value of type 'NSManagedObjectContext' has no member 'insertObject'

在StackOverflow中搜索后,我找到了帖子"Using extensions in separate .swift file"。正如帖子的作者所说,当我将扩展NSManagedObjectContext代码放在我的自定义CoreDataStack.swift中时,上述问题就消失了。但为什么?? 不应该将Apple的类扩展到单独的文件中吗?

0 个答案:

没有答案