Tag: 核心数据

核心数据逆关系没有被设置

我有两个实体,我打电话给A和B.他们在两个方向configuration了多对多关系,所以A.myBs和B.myAs都是NSSets。 这是我奇怪的问题。 当我添加一个B到我的A实体时,我使用mutableSetValueForKey这样做: NSMutableSet *myBSet = [myA mutableSetValueForKey:@"myBs"]; [myBSet addObject:theBtoAdd]; 这确实添加了BtoAdd到A实体,但不添加反比关系。 核心数据上下文保存不会踢任何错误,但我的A对象没有B反转集。 如果我退出应用程序,即使部分关系不保存。 这是奇怪的部分…如果我只是切换我的代码,做相反的(有理由为什么这是很难做我的特定应用程序) – 添加A到B,而不是像这样添加B到A: NSMutableSet *myASet = [myB mutableSetValueForKey:@"myAs"]; [myASet addObject:theAtoAdd]; 它工作得很好。 顺便说一句,我有很多其他的一对多关系的工作。 只是这一个没有。 其他几件事:1)我的核心数据对象模型看起来不错,但这是我在Xcode 4下添加的第一个新实体2)我检查,重新检查,并盲目看着我的自定义NSManagedObjects,但他们看起来罚款dynamic,NSSet,没有冲突的制定者/获得者…等 任何帮助或debuggingbuild议将不胜感激。 谢谢!

如何在iOS 10 Swift 3中初始化NSFetchedResultsController

我无法让我的NSFetchedResultsController在iOS 10中使用Swift 3在AECoreDataUI的CoreDataTableViewController中初始化 。 let request = NSFetchRequest<NasaPicture>(entityName:"NasaPicture") request.predicate = Predicate(format: "isPagedResult == YES") request.sortDescriptors = [SortDescriptor(key: "date", ascending: false)] fetchedResultsController = NSFetchedResultsController(fetchRequest: request, managedObjectContext: moc, sectionNameKeyPath: nil, cacheName: nil) 编译器抱怨说 "Cannot convert value of type NSFetchedResultsController<NasaPicture> to expected type NSFetchedResultsController<_>" 控制器现在使用genericstypes为swift,但它不正确推断实体types。 我已经明确地尝试过: fetchedResultsController = NSFetchedResultsController<NasaPicture>(fetchRequest: request, managedObjectContext: moc, sectionNameKeyPath: nil, cacheName: nil) 也没有运气。 谢谢!

CoreData:使用NSDictionaryResultType提取多对多关系的计数

核心数据中有大量的对象(大约5万个,并且定期增加)。 我用下面的请求来获取它: NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:[SongObject name]]; fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]]; fetchRequest.propertiesToFetch = @[@"uid", @"name", @"toArtistRef.uid", @"toArtistRef.name"]; fetchRequest.resultType = NSDictionaryResultType; 实体SongObject也包含与toSongsInPlaylistRef关系,这是toSongsInPlaylistRef -many。 我需要为每个对象提取这个集合的数量。 由于大量的数据,我无法取得关系本身。 我尝试添加@"toSongsInPlaylistRef.@count"和@"toSongsInPlaylistRef.count"但它崩溃 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid to many relationship in setPropertiesToFetch: (toSongsInPlaylistRef.count)' 请写下任何build议。

无NPRredicate集合操作

如何创build可以读取的谓词:所有问题不包含answer.correct = "1" 。 如果返回的数组包含“0”和“1”,则以下谓词不起作用: [NSPredicate predicateWithFormat:@"NONE answers.correct IN %@", [NSArray arrayWithObject:@"1"]]; 还尝试了不(任何…):相同的结果 这是一个错误?

NSFetchedResultsController:在后台线程中获取

我有一个或多或less的基本UITableViewController NSFetchedResultsController 。 UITableViewController被推到navigationController's堆栈上。 但是推animation并不stream畅,因为NSFetchedResultsController的获取是在主线程上执行的,因此阻塞了UI。 我的问题是:如何在后台线程中执行NSFetchedResultsController的获取以保持animation的平滑? NSFetchedResultsController和委托方法如下所示: – (NSFetchedResultsController *)fetchedResultsController { if (_fetchedResultsController != nil) { return _fetchedResultsController; } NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; // Edit the entity name as appropriate. NSEntityDescription *entity = [NSEntityDescription entityForName:@"GPGrade" inManagedObjectContext:self.managedObjectContext]; [fetchRequest setEntity:entity]; // Set the batch size to a suitable number. [fetchRequest setFetchBatchSize:20]; //Set predicate NSPredicate *predicate […]

如何获取PHAsset的URL?

我正在使用第三方库从照片库中select多个图像。 在select多个图像时,它返回一个PHAsset对象数组。 现在,我想将这些对象的URL(或某些引用)保存在核心数据中。 但我不知道如何获取url。 有没有其他的参考可以存储在核心数据,这可以帮助我从图片库中获取相同的图像?

Xcode更改构build的应用程序文件夹的位置

我将.mp3存储在我的i​​OS应用程序文档目录中,并将path保存到Core Data。 当我重build应用程序Xcode似乎将应用程序数据移动到不同的目录,从而使存储的path无效。 为什么会发生这种情况,保存文件path的最佳做法是什么? 我正在使用Xcode 6.2,并且已经成功地检索过去的文件。 下载后的文件位置: in ~/Library/Developer/CoreSimulator/Devices/82D1931C-590D-45A2-AB9B-8D1D4F2530C5/data/Containers/Data/Application/ $ find . -iname p612.mp3 ./1C070BF8-0E2E-4EAC-99B6-C56E48675E6E/Documents/adf07cf85254e8f28f942f2d6fa704ae/p612.mp3 重build后文件的位置: in ~/Library/Developer/CoreSimulator/Devices/82D1931C-590D-45A2-AB9B-8D1D4F2530C5/data/Containers/Data/Application/ $ find . -iname p612.mp3 ./E6C7D0AF-E61C-4BDD-AF4B-68C445E2BB0D/Documents/adf07cf85254e8f28f942f2d6fa704ae/p612.mp3

核心数据设置XCode中的一对多4.3.1

我想了解如何在Xcode 4.3.1中build立一对多的关系。 通常有一个“复数”选项的实用程序窗格,但我找不到它了。 有谁知道这个选项是否移动到别的地方? 谢谢 :)

debugging核心数据迁移来比较散列值

我阅读这篇文章(点击)关于修复讨厌的核心数据迁移问题。 作者Victor Bogdan写道,他启用了Data Migration Debug来获取实体的哈希值。 这是什么意思? 是否有可能为迁移启用更多debugging输出? 还是他写了一个带有debugging输出的迁移过程? 我的问题是我无法获得映射模型的实体散列,以将它们与源和目标实体散列进行比较。 我在XCode 4.5.1上,并使用iOS6。 但是,我对旧版本有相同的迁移问题。

尝试更改布尔属性时发生EXC_BAD_ACCESS错误

我试图改变一个Bool属性,并收到一个EXC_BAD_ACCESS错误。 我正在使用XCode 6和Swift。 note属性保存正常,但是completed属性会抛出EXC_BAD_ACCESS错误 import Foundation import CoreData class Task: NSManagedObject { @NSManaged var note: String! @NSManaged var completed: Bool } 更换属性例程 // taskObject is an instance of Task() // Set the completed flag taskObject.completed = true // EXC_BAD_ACCESS