您知道删除Core Data中存储的所有条目的方法吗?我的架构应该保持不变; 我只是想把它重置为空白.
编辑
我希望以编程方式执行此操作,以便用户可以实际按下reset按钮.
我正在开发一个使用Core Data的应用程序.当我使用以下方法创建实例时:
let entity = NSEntityDescription.entityForName("User", inManagedObjectContext: appDelegate.managedObjectContext)
let user = User(entity: entity, insertIntoManagedObjectContext: appDelegate.managedObjectContext)
Run Code Online (Sandbox Code Playgroud)
我在日志中收到警告:
CoreData: warning: Unable to load class named 'User' for entity 'User'. Class not found, using default NSManagedObject instead.
Run Code Online (Sandbox Code Playgroud)
我该怎么办呢?
另一个问题是,如何在NSManagedObject子类中定义实例方法?
编辑:
我已经指定了实体的类,如下面的屏幕截图所示:

我正在使用Xcode 6.1将现有的Objective-C电视节目应用程序复制到新的Swift版本,并且我在使用CoreData时遇到了一些问题.
我创建了一个包含4个实体的模型,创建了它们的NSManagedObject子类(在Swift中),并且所有文件都设置了适当的应用程序目标(用于"编译源代码").
每当我尝试插入一个新实体时,我仍然会收到此错误:
CoreData:警告:无法为实体"显示"加载名为"显示"的类.找不到类,而是使用默认的NSManagedObject.
一些评论:
保存到Core Data时,我使用父子上下文方式来允许背景线程.我这样做是通过使用以下方法设置ManagedObjectContext:
lazy var managedObjectContext: NSManagedObjectContext? = {
// Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.) This property is optional since there are legitimate error conditions that could cause the creation of the context to fail.
let coordinator = self.persistentStoreCoordinator
if coordinator == nil {
return nil
}
var managedObjectContext = NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.MainQueueConcurrencyType)
managedObjectContext.persistentStoreCoordinator = coordinator
return managedObjectContext
}()
Run Code Online (Sandbox Code Playgroud)
并使用以下方法保存数据:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, …Run Code Online (Sandbox Code Playgroud) 使用Xcode 4.2和ARC,我注意到自动生成的代码NSManagedObject对于属性仍然如下:
@property (nonatomic, retain) NSString * someString;
Run Code Online (Sandbox Code Playgroud)
1)retain现在不应该用strong或替换weak?
2)为什么自动生成的代码仍然使用 retain
3)retain在此属性声明中,正确的替换是什么?
我正在调试使用的问题NSFetchRequest,我认为这可能是问题的根源.思考?
properties objective-c retain nsmanagedobject automatic-ref-counting
我有一个NSManagedObject已被删除,并且已保存包含该托管对象的上下文.据我所知,isDeleted返回YES如果核心数据会问持久存储删除对象的下一个保存操作过程中.但是,由于保存已经发生,因此isDeleted返回NO.
在保存包含上下文之后判断是否NSManagedObject已被删除的好方法是什么?
(如果您想知道为什么引用已删除的托管对象的对象还不知道删除,那是因为删除和上下文保存是由执行删除并使用保存的后台线程启动的performSelectorOnMainThread:withObject:waitUntilDone:.)
我最近将我的iOS应用程序项目更新到iOS 10.现在我正在尝试更改我的应用程序的核心数据模型,但Xcode生成的新NSManagedObject子类已损坏.我也尝试修复子类手册,但这不起作用.
Core Data Model的最小工具版本设置为Xcode 7.0,代码生成语言设置为Swift.
这是Xcode生成的代码:
import Foundation
import CoreData
import
extension Group {
@nonobjc public class func fetchRequest() -> NSFetchRequest {
return NSFetchRequest(entityName: "Group");
}
@NSManaged public var name: String?
@NSManaged public var platform: NSNumber?
@NSManaged public var profiles: NSOrderedSet?
}
// MARK: Generated accessors for profiles
extension Group {
@objc(insertObject:inProfilesAtIndex:)
@NSManaged public func insertIntoProfiles(_ value: SavedProfile, at idx: Int)
@objc(removeObjectFromProfilesAtIndex:)
@NSManaged public func removeFromProfiles(at idx: Int)
@objc(insertProfiles:atIndexes:)
@NSManaged public func insertIntoProfiles(_ values: [SavedProfile], at indexes: NSIndexSet)
@objc(removeProfilesAtIndexes:) …Run Code Online (Sandbox Code Playgroud) 我有一个NSManagedObjectContext,其中我有许多NSManagedObjects的子类,有些是其他人的容器.我想要做的是观察一个顶级对象,通知它对任何属性,关联或它包含的任何对象的属性/关联的任何更改.
使用上下文的'hasChanges'并没有给我足够的粒度.对象'isUpdated'方法仅适用于给定对象(而不是其关联中的任何对象).是否有一个方便的(也许是基于KVO的)我可以观察上下文中仅限于子图的变化?
我有一个托管对象("A"),它包含各种属性和关系类型,它的关系也有自己的属性和关系.我想做的是"复制"或"复制"以对象"A"为根的整个对象图,从而创建一个与"A"非常相似的新对象"B".
更具体地说,"B"(或其子代)所包含的关系都不应指向与"A"相关的对象.应该有一个完全相同的关系完整的新对象图,所有对象具有相同的属性,但当然不同的id.
有一种明显的手动方式可以做到这一点,但我希望了解一种更简单的方法,这在核心数据文档中并不完全明显.
TIA!
我有一个用户界面来插入一个Transaction.一旦用户点击加号,他就会获得屏幕,我想要实例化我的核心数据NSManagedObject实体,让用户使用它.然后当用户点击"保存"按钮时,我将调用保存功能.
所以到代码:
transaction = (Transaction *)[NSEntityDescription insertNewObjectForEntityForName:@"Transaction" inManagedObjectContext:self.managedObjectContext];
//even if i dont call save: its going to show up on my table
[self.managedObjectContext save:&error]
Run Code Online (Sandbox Code Playgroud)
PS我在该表上使用NSFetchedResultsController,我看到NSFetchedResultsController正在向表中插入一个节和一个对象.
我的想法是,如果有一种方法来实例化事务NSManagedObject我可以更新它而不保存直到客户选择.
我有一个相当标准的设置,一个从未保存的暂存器MOC(包含从Web下载的一堆对象)和另一个永久MOC持久化对象.当用户从scratchMOC中选择一个对象添加到她的库时,我想要1)从scratchMOC中删除对象并插入到permanentMOC中,或者2)将对象复制到permanentMOC中.该核心数据FAQ说,我可以复制的对象是这样的:
NSManagedObjectID *objectID = [managedObject objectID];
NSManagedObject *copy = [context2 objectWithID:objectID];
Run Code Online (Sandbox Code Playgroud)
(In this case, context2 would be permanentMOC.) However, when I do this, the copied object is faulted; the data is initially unresolved. When it does get resolved, later, all of the values are nil; none of the data (attributes or relationships) from the original managedObject are actually copied or referenced. Therefore I can't see any difference between using this objectWithID: method and just inserting an entirely new …
cocoa cocoa-touch core-data nsmanagedobject nsmanagedobjectcontext
nsmanagedobject ×10
core-data ×9
cocoa ×3
ios ×3
cocoa-touch ×2
iphone ×2
swift ×2
ios10 ×1
objective-c ×1
properties ×1
retain ×1
xcode8 ×1