2015-04-17 63 views
0

我想將我的imageArray添加到coredata中作爲可變形,但是這樣做存儲不正確。將核心數據中的圖像陣列保存爲可變形

我的保存按鈕編碼。

- (IBAction)saveButton:(id)sender { 

NSManagedObjectContext *context = [self managedObjectContext]; 
NSManagedObject *newEntry = [NSEntityDescription insertNewObjectForEntityForName:@"FoodInfo" inManagedObjectContext:context]; 
NSAttributeDescription *messageType = [[NSAttributeDescription alloc] init]; 
[messageType setName:@"photos"]; 
[messageType setAttributeType:NSTransformableAttributeType]; 
[imagesForShow addObject:messageType]; 
NSError *error = nil; 
if (![context save:&error]) { 
    NSLog(@"Unable to save context for class"); 
} else { 
    NSLog(@"saved all records!"); 
    [context save:nil]; 
} 
//[newEntry setValue:imagesForShow forKey:@"images"]; 


} 
  • 這裏imagesForShow'是我的圖像陣列。

當IAM去獲取這個圖像陣列,這顯示爲零

- (void)viewDidLoad { 
[super viewDidLoad]; 

NSManagedObjectContext *context = [self managedObjectContext]; 
NSFetchRequest *request = [[NSFetchRequest alloc]initWithEntityName:@"FoodInfo"]; 
[request setReturnsObjectsAsFaults:NO]; 
arrayForPhotos = [[NSMutableArray alloc]initWithArray:[context executeFetchRequest:request error:nil]]; 




// Do any additional setup after loading the view. 
} 

我在做什麼毛病此代碼。謝謝。

+0

你想用屬性描述做什麼?陣列在哪裏配置?你看到什麼錯誤/結果?爲什麼要將圖像存儲在覈心數據中? – Wain

+0

這是關於圖像數組的描述。錯誤是無關緊要的,但是當我要讀取時,這個顯示爲零。我希望從照片庫中選擇未來的圖像。如果有任何其他方法可以將圖像數組存儲在覈心數據中,則請將其發佈。 –

+0

如果他們在照片庫中,爲什麼不存儲資產URL? – Wain

回答

0

在你節省代碼:

NSManagedObjectContext *context = [self managedObjectContext]; 
NSManagedObject *newEntry = [NSEntityDescription 
    insertNewObjectForEntityForName:@"FoodInfo" 
    inManagedObjectContext:context]; 
NSAttributeDescription *messageType = [[NSAttributeDescription alloc] init]; 
[messageType setName:@"photos"]; 
[messageType setAttributeType:NSTransformableAttributeType]; 
[imagesForShow addObject:messageType]; 

我甚至不能弄清楚,這是應該做的。這是完全錯誤的。除非你正在構建一個核心數據模型,你不應該分配一個NSAttributeDescription的實例 - 你沒有做,幾乎沒有人做過。創建新條目是可以的。其餘的,我不知道。你說imagesForShow是你的圖像數組,所以我不知道你爲什麼還要向數組添加屬性描述。

在更普遍的意義上說,如果newEntry已任命一個變形屬性photosimagesForShowUIImageNSArray的對象,那麼你可以這樣做:

[newEntry setValue:imagesForShow forKey:@"photos"]; 

這類似於線你已經註釋掉了,儘管目前還不清楚它爲什麼被註釋掉了。

但無論你擺脫創建NSAttributeDescription的代碼。