【问题标题】:ManagedObjectContext SyntaxManagedObjectContext 语法
【发布时间】:2015-10-15 04:33:24
【问题描述】:

所以,它告诉我:

init() 在 IOS 9.0 中已弃用:使用 -initWithConcurrencyType: 而是

var managedObjectContext = NSManagedObjectContext()

这是我的代码。也报错了,怎么改呢?

【问题讨论】:

    标签: swift swift2 ios9 xcode7


    【解决方案1】:

    由于 iOS 9 NSManagedObjectContext() 已被弃用,因此建议使用 NSManagedObjectContext 创建一个 NSManagedObjectContext,如提示的那样,改为 -initWithConcurrencyType:

    在 iOS 9 中创建 NSManagedObjectContext 时的用法:

    let managedObjectContext = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType)
    

    对于-initWithConcurrencyType:,我们需要指定一个并发类型。

    上面的例子创建了一个.MainQueueConcurrencyType,这是可以指定的三个之一:

    case ConfinementConcurrencyType
    

    指定上下文将使用线程限制模式。

    case PrivateQueueConcurrencyType
    

    指定上下文将与私有调度队列相关联。

    case MainQueueConcurrencyType
    

    指定上下文将与主队列相关联。

    使用已弃用的NSManagedObjectContext(),如果我没记错的话,默认类型是.ConfinementConcurrencyQueue

    如果您正在处理 UI 元素(即更新textLabel),请使用.MainQueueConcurrencyQueue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多