我想通过这个示例代码来处理,其中使用Swift和CoreData来创建表.但是,使用Swift 3我无法使用它.最重要的是,我无法正确更换线路
// set up the NSManagedObjectContext
let appDelegate = NSApplication.sharedApplication().delegate as! AppDelegate
managedContext = appDelegate.managedObjectContext
Run Code Online (Sandbox Code Playgroud)
即使我发现了这个相关的问题(然而iOS不是OS X).如何替换产生错误消息的那段代码Value of type 'AppDelegate' has no member 'managedContext'?
我在Xcode 8 beta 1中遇到了Core Data的困难.旧的应用程序将编译并运行良好,但所有新应用程序编译并运行正常,直到尝试插入新的NSManagedObject.
最初我认为它与错误地删除旧的xcdatamodel并重新构建另一个有关,但在制作一个全新的应用程序并制作一个简单的实体"A"之后,我无法在运行时创建类A的对象.
我试过使用let a = A(context: myMOC)哪个返回错误:
类"MyApp.A"的NSManagedObject必须具有有效的NSEntityDescription.
尝试旧的let a = NSEntityDescription.insertNewObject(forEntityName: "A", into: context) as! A返回错误:
无法将"NSManagedObject_A_"(0x7fd114626f80)类型的值转换为"MyApp.A"(0x10d2fdf28).
我已经检查了我的xcdatamodel十几次,以确保我拼写正确的一切,并创建了一个新项目进行测试,以确保我没有在设置CD时出错.思考?
更新: xcdatamodel包内容是这样的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="11147.23" systemVersion="16A201w" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
<entity name="Coordinate" syncable="YES" codeGenerationType="class">
<attribute name="latitude" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarValueType="YES" syncable="YES"/>
<attribute name="longitude" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarValueType="YES" syncable="YES"/>
<relationship name="route" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Route" inverseName="coordinates" inverseEntity="Route" syncable="YES"/>
</entity>
<entity name="Route" syncable="YES" codeGenerationType="class">
<attribute name="uuid" optional="YES" attributeType="String" syncable="YES"/>
<relationship name="coordinates" …Run Code Online (Sandbox Code Playgroud) 我正在开发应用程序并共享扩展并尝试使用核心数据.但是当我在扩展中插入项目时,这些项目仅在扩展中可见但不是从容器应用程序中可见(例如,我从应用程序执行NSFetchRequest并获得零项目,但在app中我得到> 0).我使用以下代码获取持久性容器:
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "appname")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error {
fatalError("Unresolved error \(error)")
}
})
return container
}()
Run Code Online (Sandbox Code Playgroud)
此外,还会检查appname.xcdatamodeld的目标成员应用程序和扩展程序.如何正确共享容器应用和扩展的核心数据?
在iPhone的核心数据中,我遇到了各种错误,试图将数据保存到NSManagedObjectContext.
我相信我的问题与我使用NSManagedObjectContext多线程中使用的问题有关.
所以我想创建一个新的NSManagedObjectContext并尝试,但我找不到简单创建新实例的示例代码...
我知道这很简单,但我真的很感激这里的任何帮助.
注意,我在Apple文档上看过这篇文章:http://developer.apple.com/iphone/library/documentation/cocoa/conceptual/CoreDataUtilityTutorial/Articles/05_createStack.html
但是这使用了一些我不熟悉的代码,比如iPhone上不支持的XMLStore等.
我有一个使用核心数据的应用程序,它支持ios 9以及ios 10.我正在使用xcode 8.2.1来开发这个项目.当应用程序在ios 10上运行时,AppDelegate文件有获取ManagedObjectContext的方法但是,当应用程序在ios 9上运行时,我如何获得它.我试图谷歌但没有任何帮助.任何帮助!
我用来获取ManagedObjectContext的代码在这里:
NSManagedObjectContext *context = ((AppDelegate*)[[UIApplication sharedApplication] delegate]).persistentContainer.viewContext;
Run Code Online (Sandbox Code Playgroud) core-data ×6
ios ×3
ios10 ×3
iphone ×2
swift ×2
ios9 ×1
macos-sierra ×1
objective-c ×1
swift3 ×1
xcode8 ×1