2012-09-07 57 views
1

我想的[Sectioninfo Objects]輸出存入數組存儲CoreData對象進入的NSDictionary或NS陣列

NSArray *currentCategory = [sectionInfo objects]; 

雖然我得到的NSLog輸出如下:

"<Catalogue: 0x6da1d20> (
    entity: Catalogue; 
    id: 0x6da1090 <x-coredata://894839B1-B485-4D64-8D46-99E388F00225/Catalogue/p3> ; 
    data: {\n comments = nil;\n 
       email = nil;\n 
       name = Shorts;\n 
       phone = 0;\n 
       picture = <ffd8ffe0 00104a46 49460001 01000001 00010000 ffe10058 45786966 00004d4d 002a0000 00080002 01120003 00000001 0001>;\n 
       price = 77;\n 
       shop = Shop;\n 
       website = nil;\n})" 

我我只對數據部分感興趣

如何提取數據部分? &那麼我可以因爲這個問題被標記核心數據添加到NSArray的

感謝您的幫助

回答

0

,我假設你正在談論你從NSFetchedResultsController通過

id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section]; 
獲得部分信息

如果是這種情況,則部分信息協議指定objects返回該部分中的對象數組。這個對象數組將保存實際對象,就像您從執行提取獲取的對象數組一樣。

因此,您可以像訪問任何其他對象一樣訪問它們。希望你有一個子類,所以你可以通過適當的屬性訪問該對象。

否則,您可以使用KVC方法。從你的日誌輸出中,我假設data是你的對象的屬性(可能是一個字符串)。

NSArray *sectionObjects = [sectionInfo objects]; 
NSMutableArray *dataArray = [NSMutableArray arrayWithCapacity:sectionObjects.count]; 
for (NSManagedObject *object in sectionObjects) { 
    NSString *data = [object valueForKey:@"data"]; 
    [dataArray addObject:data]; 
} 

或者,你可以更簡潔地做到這一點是:

NSArray *dataArray = [[sectionInfo objects] valueForKey:@"data"]; 

返回與應用的關鍵,在接收器中的每個對象的結果數組。

+0

首先感謝您的幫助,雖然「數據」不是我屬性的一部分,但我的屬性從「註釋」,電子郵件地址開始,...「前兩行{」<目錄:0x6da1d20>( 實體:目錄; id:0x6da1090 ; data:{\ n},我不知道它們是什麼,或者如何擺脫它們,當我嘗試獲取請求時,獲得相同的結果 – TALAA

+0

好的,那麼你的實體描述是什麼,以及你在哪裏得到這個對象?當然,當你獲取時你會得到同樣的結果,因爲你獲得了相同的對象,只是按部分分組提供你的實體描述,以及你的獲取請求 –

+0

嗯,我解決了顯示我的對象的問題,所有我不得不做的屁股rect NSOBJECT。從顯示的角度來看,它工作正常,儘管從視圖來看NSFecthResultschangecontent沒有正確調用,因爲tableview被刷新了 – TALAA