标签: nsmanagedobject

删除/重置核心数据中的所有条目?

您知道删除Core Data中存储的所有条目的方法吗?我的架构应该保持不变; 我只是想把它重置为空白.


编辑

我希望以编程方式执行此操作,以便用户可以实际按下reset按钮.

cocoa cocoa-touch core-data nsmanagedobject ios

229
推荐指数
13
解决办法
15万
查看次数

无法找到NSManagedObject的特定子类

我正在开发一个使用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子类中定义实例方法?

编辑:

我已经指定了实体的类,如下面的屏幕截图所示:

在此输入图像描述

core-data nsmanagedobject ios swift

131
推荐指数
7
解决办法
4万
查看次数

CoreData:警告:无法加载命名的类

我正在使用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)

multithreading core-data nsmanagedobject swift

91
推荐指数
6
解决办法
3万
查看次数

ARC的@property定义:强还是保留?

使用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

80
推荐指数
2
解决办法
3万
查看次数

如何判断是否已删除"NSManagedObject"?

我有一个NSManagedObject已被删除,并且已保存包含该托管对象的上下文.据我所知,isDeleted返回YES如果核心数据会问持久存储删除对象的下一个保存操作过程中.但是,由于保存已经发生,因此isDeleted返回NO.

在保存包含上下文之后判断是否NSManagedObject已被删除的好方法是什么?

(如果您想知道为什么引用已删除的托管对象的对象还不知道删除,那是因为删除和上下文保存是由执行删除并使用保存的后台线程启动的performSelectorOnMainThread:withObject:waitUntilDone:.)

core-data nsmanagedobject ios

68
推荐指数
4
解决办法
3万
查看次数

Xcode 8为iOS 10生成损坏的NSManagedObject子类

我最近将我的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)

core-data nsmanagedobject ios10 xcode8

63
推荐指数
8
解决办法
4万
查看次数

如何跟踪/观察子图中的所有更改?

我有一个NSManagedObjectContext,其中我有许多NSManagedObjects的子类,有些是其他人的容器.我想要做的是观察一个顶级对象,通知它对任何属性,关联或它包含的任何对象的属性/关联的任何更改.

使用上下文的'hasChanges'并没有给我足够的粒度.对象'isUpdated'方法仅适用于给定对象(而不是其关联中的任何对象).是否有一个方便的(也许是基于KVO的)我可以观察上下文中仅限于子图的变化?

iphone core-data nsmanagedobject nsmanagedobjectcontext

58
推荐指数
2
解决办法
2万
查看次数

如何复制或复制核心数据管理对象?

我有一个托管对象("A"),它包含各种属性和关系类型,它的关系也有自己的属性和关系.我想做的是"复制"或"复制"以对象"A"为根的整个对象图,从而创建一个与"A"非常相似的新对象"B".

更具体地说,"B"(或其子代)所包含的关系都不应指向与"A"相关的对象.应该有一个完全相同的关系完整的新对象图,所有对象具有相同的属性,但当然不同的id.

有一种明显的手动方式可以做到这一点,但我希望了解一种更简单的方法,这在核心数据文档中并不完全明显.

TIA!

cocoa core-data nsmanagedobject

54
推荐指数
9
解决办法
3万
查看次数

有没有办法实例化NSManagedObject而不插入它?

我有一个用户界面来插入一个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我可以更新它而不保存直到客户选择.

iphone core-data nsfetchedresultscontroller nsmanagedobject

54
推荐指数
4
解决办法
3万
查看次数

如何将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

53
推荐指数
3
解决办法
2万
查看次数