我正在製作一個包含不同類型測驗的iOS應用程序,所有問題和答案選項都存儲在CoreData
中。在多對多關係中分配數據
我創建了兩個實體,一個叫QuestionData具有屬性,如'問題「ANSWER1」(意思是,答案選1),「ANSWER2」等,然後另一實體,稱爲測驗,與像屬性'name'和'quizId',我在Quiz上創建了一個名爲'dataData'的一對多關係,它將引用所有問題/答案等。
當我創建了一些測試數據(試驗關係)時,我首先創建了questionData,然後設置測驗的名稱和ID,然後我嘗試設置這樣的關係中的數據,
[quizInfo setValue:questionData forKey:@"quizData"];
本應該存儲/設置Quiz實體的quizData
鍵中的所有問題/答案。但是,我得到了這個不可接受的類型錯誤,告訴我它'期望'NSSet
,但我反而給它一種QuestionData
。
'NSInvalidArgumentException', reason: 'Unacceptable type of value for to-many relationship: property = "quizData"; desired type = NSSet; given type = QuestionData; value = <QuestionData: 0x89447a0> (entity: QuestionData; id: 0x8919900 <x-coredata:///QuestionData/t6B583F60-5794-47FA-8A51-
我理解的概念,「設置」但是,我不知道我怎樣才能使questionData
一組,當談到時間來做到這一點
[quizInfo setValue:questionData forKey:@"quizData"];
全碼:
NSManagedObjectContext *context = [self managedObjectContext];
QuestionData *questionData = [NSEntityDescription
insertNewObjectForEntityForName:@"Questiondata"
inManagedObjectContext:context];
[questionData setValue:@"do you like big basketballs" forKey:@"question"];
[questionData setValue:@"yes" forKey:@"answer1"];
[questionData setValue:@"no" forKey:@"answer2"];
[questionData setValue:@"maybe" forKey:@"answer3"];
[questionData setValue:@"maybe" forKey:@"correctAnswer"];
Quiz *quizInfo = [NSEntityDescription
insertNewObjectForEntityForName:@"Quiz"
inManagedObjectContext:context];
[quizInfo setValue:@"1" forKey:@"quizId"];
[quizInfo setValue:@"sportsquiz" forKey:@"name"];
[quizInfo setValue:questionData forKey:@"quizData"];
好的謝謝你把錯誤的地方,我認爲 – BrainLikeADullPencil
哎呀。修正了:) – Paulw11