2013-07-12 71 views
0

我有一個iOS應用程序使用Core Data來保存從服務器檢索到的信息。我使用基本抓取請求抓取給定entity的所有managedObjectsmanagedObjects被放入一個我用來填充tableViewController的數組中。表中的每個單元格都有一個UITextField,我試圖將這些信息放入。我可以將數據導入文本字段,但每個元素都帶有括號。 我怎樣才能擺脫這些,只顯示文本?如何從數組元素中刪除括號

這裏是獲取請求:

NSManagedObjectContext *moc = self.managedObjectContext; 
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"UserInfo" inManagedObjectContext:moc]; 
NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
[request setEntity:entityDescription];  
NSArray *objects = [moc executeFetchRequest:request error:&error]; 

這裏是我使用的填充文本字段的內容:

self.middleNameField.text = [[objects valueForKey:@"firstName"] description]; 
self.middleNameField.text = [[objects valueForKey:@"middleName"] description]; 
self.lastNameField.text = [[objects valueForKey:@"lastName"] description]; 

這裏是響應樣子

enter image description here

這個問題已經aske幾次,但似乎都在尋找顯示數組的所有內容,而不是一個特定的元素。有些人推薦以下方法。

self.firstNameField.text = [[[objects valueForKey:@"firstName"] stringByReplacingOccurrencesOfString:@"(" withString:@""]description]; 

但我得到這個異常錯誤。

-[__NSArrayI stringByReplacingOccurrencesOfString:withString:]: unrecognized selector sent to instance 

有人能指出我在這個正確的方向?我意識到我可能會以這種錯誤的方式去做。不要猶豫,建議一個更好的方法來完成相同的任務。 片段真的幫助!因爲你所要求的valueForKey

數組

回答

1

您的代碼返回數組[對象valueForKey:@ 「名字」]

我建議這樣的:

NSArray *objects = [moc executeFetchRequest:request error:&error]; 
NSManagedObject *object = [objects lastObject]; 
if (object) { 
    self.middleNameField.text = [object valueForKey:@"firstName"]; 
    self.middleNameField.text = [[object valueForKey:@"middleName"]; 
    self.lastNameField.text = [[object valueForKey:@"lastName"]; 
} 

您可能希望如果objects數組爲空,則將這些字段設置爲@「」。取決於他們之前是否可以居住。

我也不是使用NSManagedObject *對象的粉絲,如果您可以使用爲您的模型生成適當的子類。假設有問題的班級是Person

Person *person = [objects lastObject]; 
if (person) { 
    self.middleNameField.text = person.firstName; 
+0

感謝您的回覆KHansenSF!花了我一秒鐘纔得到它的工作,因爲'[對象valueForKey:@「firstName」]'應該是'[object ...]',但一旦我發現它完美展開。好的解決方案如果你想詳細說明子類的好處,你建議我願意學習! – Ben

+0

你是絕對正確的。我發那個,並且會編輯我的答案。感謝您指出了這一點!對不起,如果這會讓你放慢速度! – KHansenSF