2013-03-08 32 views
0

我想將uiviewcontroller類保存到coredata中,並通過單擊按鈕從coredata中檢索它。我用nsarchiver和nsunarchiver試了一下。將該類轉換爲nsdata並保存到coredata。但在檢索的時候,我得到了一個錯誤:使用coredata保存並檢索類對象

-[__NSArrayI bytes]: unrecognized selector sent to instance 0x6d442a0 my code is below

// the button press for saving the object 

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:viewcontrollerobject]; 
ViewData *viewdetails=[NSEntityDescription insertNewObjectForEntityForName:@"ViewData" inManagedObjectContext:[self managedObjectContext]]; 

viewdetails.view = data; 
viewdetails.order = [NSNumber numberWithInt:1]; 
[self.fetchedResultsController performFetch:nil]; 


//button press for retrieving the class 
[self.fetchedResultsController performFetch:nil]; 


NSData *theData; 
theData = [fetchedResultsController.fetchedObjects valueForKey:@"view"]; 

viewcontroller *newviewcontrollerobject; 
newviewcontrollerobject=[NSKeyedUnarchiver unarchiveObjectWithData:theData]; 

[newviewcontrollerobject.view setFrame:CGRectMake(200, 200, 300, 150)]; 
[self.view addSubview:newviewcontrollerobject.view]; 

請幫我解決這個代碼

+2

你想實現什麼? – 2013-03-08 12:14:48

回答

0

這行代碼返回你的NSData對象的NSArray:

[fetchedResultsController.fetchedObjects valueForKey:@"view"]; 

所以這將工作:

NSArray* theDataArray = [fetchedResultsController.fetchedObjects valueForKey:@"view"]; 
theData = [theDataArray lastObject]; 
3

我強烈建議不要這個應用程序設計。您應該使用核心數據來堅持您的模型的數據,而不是任何,更不用說控制器

請仔細閱讀"Cocoa Core Competencies: Model-View-Controller"

+0

我完全同意你的看法。 +1 – 2013-03-08 17:31:44