sen*_*nty 1 ios swift ios9 swift2.1
我的模型在线上有错误(黄色警告):
var managedObjectContext = NSManagedObjectContext()
Run Code Online (Sandbox Code Playgroud)
'init()' was deprecated in iOS 9.0: Use -initWithConcurrencyType: instead
是什么造成的?我该如何解决这个问题?
将其更改为:
var managedObjectContext = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType)
Run Code Online (Sandbox Code Playgroud)
您可以下载Apple的文档以查看更多详细信息.
NSConfinementConcurrencyType
指定上下文将使用线程限制模式.
适用于iOS 3.0及更高版本.
在iOS 9.0中不推荐使用.
或Command +单击"NSManagedObjectContext"直接到NSManagedObjectContext.h:
@available(iOS, introduced=3.0, deprecated=9.0, message="Use another NSManagedObjectContextConcurrencyType")
case ConfinementConcurrencyType
@available(iOS, introduced=3.0, deprecated=9.0, message="Use -initWithConcurrencyType: instead")
public convenience init()
Run Code Online (Sandbox Code Playgroud)
所以似乎NSManagedObjectContext()使用"ConfinementConcurrencyType"来初始化.当Apple在iOS 9.0中弃用"ConfinementConcurrencyType"时,为了保持连贯性,Apple没有改变init()方法的行为.因此,您最好将另一个NSManagedObjectContextConcurrencyTypes(PrivateQueueConcurrencyType,MainQueueConcurrencyType)与另一个init方法一起使用:
init(concurrencyType: NSManagedObjectContextConcurrencyType)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2602 次 |
| 最近记录: |