2015-10-15 46 views
1

所以,它告诉我:斯威夫特2语法错误

init()在IOS 9.0已被否决:使用 - initWithConcurrencyType: 代替

var managedObjectContext = NSManagedObjectContext() 

这是我的代码。它也给了错误,所以我应该如何改变它?

回答

2

由于iOS的9 NSManagedObjectContext()已被弃用,建议创建与NSManagedObjectContext,作为暗示,-initWithConcurrencyType:代替。

用法在创建iOS中9 NSManagedObjectContext时:

let managedObjectContext = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType) 

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

上面示例创建一个带有.MainQueueConcurrencyType,这是三个一个可以指定一个:

case ConfinementConcurrencyType 

指定上下文将使用线程限制图案。

case PrivateQueueConcurrencyType 

指定范围内将与私人调度队列关联。

case MainQueueConcurrencyType 

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

由于不推荐使用NSManagedObjectContext(),如果我的记忆功能正常,则默认设置为.ConfinementConcurrencyQueue

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