Tag: 核心数据

核心数据谓词:谓词未实现的SQL生成

基本上我有3个实体在我的数据模型:品牌,模型和修剪。 一个品牌与模型有一个一对多的关系,叫做“​​模型”。 (一个品牌有多个型号,但一个型号只有一个品牌) 一个模型与Trim被称为“修剪”有多对多的关系。 (一个模型可以有多个修剪,一个修剪可以有多个模型) 有一个修剪对象的数组,我想要得到所有的品牌有一个“包含”至less一个修剪包含在这个数组内的模型。 所以这里是我对谓词的判断: NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Brand"]; [NSPredicate predicateWithFormat:@"ANY models.trims IN %@", arrayOfTrims]; 这是我得到的错误: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate : (ANY models.trims IN {<Trim: 0x8e60340> (entity: Trim; id: 0x8e62f10 <x-coredata://BCD28560-AED5-4409-9A35-1925001773E6/Trim/p8> 我对Core Data有点新鲜,我不知道我做错了什么。 希望有人能帮忙, 非常感谢。

将核心数据快速地检索到tableview单元格中

我试图简单地存储和检索CoreData(我以前用swift成功完成的)。 我得到一个零数据,但现在(不知道是什么改变)我没有得到一个错误,只是没有显示在tableview中。 我不确定在存储或检索对象时是否存在问题。 我跟着我是如何在另一个应用程序中尽可能地做到这一点的,但似乎有一些根本性的东西,我没有得到。 这是我的。 我的模特: import Foundation import CoreData @objc(DataModel) class DataModel: NSManagedObject { @NSManaged var itemName: String @NSManaged var quantity: NSNumber @NSManaged var price: NSNumber } 在我想保存数据的文本字段的静态单元格tableviewcontroller: import UIKit import CoreData class NewItemTableViewController: UITableViewController { @IBOutlet weak var itemNameTextField: UITextField! @IBOutlet weak var itemPriceTextField: UITextField! @IBOutlet weak var itemQuantityTextField: UITextField! override func viewDidLoad() […]

核心数据崩溃::对象不能为零

我想在我的应用程序中实现CoreData来存储一个小型数据库。 在这里我的实现: AppDelegate.h #import <UIKit/UIKit.h> #import "FavoritosViewController.h" #import <CoreData/CoreData.h> @interface XXX : NSObject <UIApplicationDelegate>{ NSManagedObjectModel *managedObjectModel; NSManagedObjectContext *managedObjectContext; NSPersistentStoreCoordinator *persistentStoreCoordinator; } – (NSString *)applicationDocumentsDirectory; @property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel; @property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext; @property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator; @end AppDelegate.m – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ FavoritosViewController *global=[[FavoritosViewController alloc]init]; global.managedObjectContext=[self managedObjectContext]; . […]

iPad – 分析一个非常巨大的JSON – 文件(50和100 MB之间)

我试图parsing一个非常大的JSON文件在iPad上。 文件大小在50到100 MB之间(有一个初始文件,每个月会有一个新的全套数据,这些数据将被下载,parsing并保存到coredata中) 我正在为企业构build这个应用程序作为企业解决scheme–JSON文件包含敏感的客户数据,它需要保存在本地ipad,所以它将工作,即使离线。 当文件低于20MB时,它工作,但现在数据集变大了,我真的需要parsing它。 我在parsing过程中收到内存警告,并在第三次警告后,它只是崩溃。 我有几个不同的核心数据实体,我只是设置来自json文件(当应用程序第一次启动时)的所有值,并在所有事情完成后,我正在做[context save] 。 我希望有人能给我一些关于如何处理这些大文件的build议。 我正在考虑将json文件拆分成几个较小的json文件,并可能在多个线程中parsing它们,但是我不知道这是否是正确的方法。 我想一个大问题是整个文件被保存在内存中 – 也许有某种方式将它“stream”到内存或类似的东西? 我正在使用JSONKit( https://github.com/johnezang/JSONKit )parsing文件,因为我已经读过它是最快的一个(也许有一个更慢的内存更容易?)。 提前致谢。

更改SegmentedControl上的NSFetchedResultsController更改

我有一个使用核心数据NSFetchedResultsController填充的UITableView 。 我现在已经添加了一个UISegmentedControl到视图,当你改变当前的段,我希望tableview的内容改变。 我已经在网上阅读,使用两个不同的NSFetchedResultsControllers是明智的,因为我可以从内置caching中受益。 唯一的问题是我似乎无法find任何示例代码做这个,不知道从哪里开始。 任何人都可以解释从哪里开始创build第二个NSFetchedResultsController并更改基于分段控件的tableview的来源? 查看标题代码: #import <CoreData/CoreData.h> @interface DomainViewController : UIViewController <NSFetchedResultsControllerDelegate, UITableViewDataSource, UITableViewDelegate> { UITableView *domainView; UISegmentedControl *segmentedControl; NSString *domain; } @property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController; @property (nonatomic, retain) NSManagedObjectContext *managedObjectContext; @property (nonatomic, retain) NSString *domain; @property (nonatomic, retain) IBOutlet UITableView *domainView; @property (nonatomic, retain) IBOutlet UISegmentedControl *segmentedControl; – (IBAction)segmentedControlIndexChanged; 查看执行代码: @interface […]

核心数据 – 默认迁移(手动)

我已经读过所有可能的博客,所以就这个问题上发表 – 但仍然不知道发生了什么事情。 我也读过这个,但仍然没有运气 – 他们的指导默认迁移种清除,但在我的情况不起作用。 我对iOS开发比较新,所以要温柔:) 这是情况:在我的应用程序(iOS)中称为报表的实体,需要进行以下更改: 数据属性 – 删除 标题属性 – 添加 reportId属性需要从整数16更改为string。 这是什么原因造成我的问题。 我从当前版本创build了我的数据模型的新版本并修改了属性。 首先这里是从应用程序的一些方法: – (NSManagedObjectModel *)managedObjectModel { if (__managedObjectModel != nil) { return __managedObjectModel; } NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"App" withExtension:@"momd"]; __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; return __managedObjectModel; } 接着 /** Returns the persistent store coordinator for the application. […]

在iOS上encryptionSQLite数据库文件

我的客户问我是否可以encryption他的iOS SQLite文件。 我检查了这两个资源: encryption和解密Sqlite文件(使用核心数据) http://support.apple.com/kb/HT4175 请纠正我,如果我错了,文件将被encryption,所以没有人能够破解它(虽然这将是可能的一个坚定的cookies,我认为)。 核心数据查询将照常运行吗? 我的意思是没有性能损失,既不是一个不同的API。

如何在Core Data中有效地插入和获取UUID

我正在寻找一种有效的方法来在Core Data中存储和searchUUID。 这些UUID是由分布式系统中的许多iOS设备生成的。 这些设备中的每一个可以存储大约20-50k的UUID。 很显然,将UUID作为string存储在核心数据中会损害索引的效率。 但经过一系列的研究后,我发现将UUID作为二进制数据存储在核心数据(和索引它)可能不如string存储效率 。 由于在SQLit中不支持类似BINARY或VARBINARY的数据types。 我猜测核心数据中的任何二进制数据types的数据在SQLit中存储为BLOB。 由于BLOB可能是最慢的数据types被索引,会对性能造成不良影响。 那么任何人都可以帮助回答,有没有一种更有效的方式来存储UUID在核心数据?

自定义核心数据SectionNameKeyPath

我是新的核心数据,并试图找出如何在我的sectionNameKeyPath中创build一个自定义sectionNameKeyPath 。 我有一个名为acctPeriod属性的托pipe对象。 这是一个NSString 。 我想创build基于该字段的前4个字符的部分。 前4个字符代表会计期间的年份,不需要保存。 我经历了这个网站,看到关于瞬态属性的post,但我似乎无法让他们工作。 基本上我想这个,然后为我的sectionNameKeyPath分配sectionNameKeyPath 。 @dynamic periodYear; -(NSString *)periodYear { return [self.acctPeriod substringToIndex:4]; } 任何帮助,将不胜感激。 **更新:使用马丁R答案,我能够得到它按预期工作。 – (NSFetchedResultsController *)fetchedResultsController { if (_fetchedResultsController != nil) { return _fetchedResultsController; } NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; // Edit the entity name as appropriate. NSEntityDescription *entity = [NSEntityDescription entityForName:@"Billing" inManagedObjectContext:self.managedObjectContext]; [fetchRequest setEntity:entity]; // […]

如何将核心数据导出为CSV

我希望使用CHCSVParser将我的Core数据导出为CSV。 我知道如何从实体中获得所有的价值,但我不知道如何写入CSV。 有谁可以教我如何写入CSV与CHCSVParser ? // Test listing all Infos from the store NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"NoteLog" inManagedObjectContext:context]; [fetchRequest setEntity:entity]; NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error]; for (NoteLog *noteInfo in fetchedObjects) { NSLog(@"Name: %@", noteInfo.city ); NSLog(@"Name: %@", noteInfo.country); NSLog(@"Name: %@", noteInfo.datetime); NSLog(@"Name: %@", noteInfo.notelatitude); NSLog(@"Name: %@", noteInfo.notelongtitude); NSLog(@"Name: […]