關於Core Data的一些整理(二)

關於Core Data的一些整理(二)

建立NSManagedObject的子類時,有一點是在這中間要強調的一點是,要不要勾選 Use scalar properties for primitive data types。數據庫

勾選上這個選項以後就是使用的是你在定義的時候使用的原始數據類型。fetch

若是沒有勾選的話,就會存在類型的轉化,轉換狀況以下:ui

 

  • String maps to String
  • Integer 16/32/64, Float, Double and Boolean map to NSNumber 
  • Decimal maps to NSDecimalNumber
  • Date maps to NSDate
  • Binary data maps to NSData
  • Transformable maps to AnyObject

以後生成四個文件以下:spa

上面兩個負責數據屬性部分,下面兩個負責數據操做部分
若在使用中修改了Core Data文件,從新建立子類便可,新生成的文件只有上面兩個並覆蓋原來的文件,下面的數據操做部分並不會新建
代碼須要注意的地方很少,有下面兩點:
  • 爲NSFetchRequest添加NSPredicate條件
1 //創建匹配請求,並添加判斷語句
2   NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Bowtie"];
3   NSString *firstTitle = [self.segmentedControl titleForSegmentAtIndex:0];
4   request.predicate = [NSPredicate predicateWithFormat:@"searchKey == %@", firstTitle];
5   NSArray *results = [self.managedContext executeFetchRequest:request error:nil];
6   self.currentBowtie = results.firstObject;
  • 保存圖片時能夠選擇Allows External Storage,你數據庫內存的就不是圖片,而是圖片在你文件夾內的路徑

1   //對圖片保存進行處理
2   NSEntityDescription *entity = [NSEntityDescription entityForName:@"Bowtie" inManagedObjectContext:self.managedContext];
3   Bowtie *bowtie = [[Bowtie alloc] initWithEntity:entity insertIntoManagedObjectContext:self.managedContext];
4   bowtie.photoData = UIImagePNGRepresentation([UIImage imageNamed:dict[@"imageName"]]);
相關文章
相關標籤/搜索