2011-02-28 52 views
0

我有一個entity稱爲客戶NSArrayController稱爲clientsController。在我的客戶端實體中,我有一個名爲clientCompany的屬性。獲取值的列表從實體代碼

什麼是編程方式獲取每個clientCompany在運行一個循環的列表中選擇最簡單的方式(這樣的代碼可以從每個遵循發現clientCompany)?在這種情況下,我不確定是否應該訪問陣列控制器或管理對象。

我已經試過:

for (NSDictionary *key in clientsController) { 
    NSLog(@"%@", [key objectForKey:@"clientCompany"]); 
} 

沒有運氣,但我覺得我的路要走上。我也試着打印陣列,出於好奇的arrangedobjects,但它打印空:

NSLog(@"%@", [clientsController arrangedObjects]); 

clientsController已經初始化,並在程序的其他地方訪問,所以我認爲這將是簡單的,但我所有這一切都很新穎。謝謝。


更新
我已經去了 NSManagedObjectContext路線,並試圖 NSFetchRequest成功的小一點。請求 ObjectAtIndex:0我現在可以將第一個 clientCompany字符串打印到控制檯。我只需要能夠把所有的東西都拉出來,但最難的部分是完成的(我希望)。

+0

我有你的設置一對夫婦的問題。 clientsController是否包含客戶端對象或客戶端公司對象?另外,您想要打印什麼clientCompany的確切部分? – Nicholas1024 2011-02-28 15:08:50

+0

我稱爲** clients **的實體具有各種屬性,其中沒有一個稱爲客戶端,但是其中一個稱爲clientCompany。我有一個'NSArrayController'是客戶端通過IB綁定的對象控制器。因此,默認情況下,clientCompany是clientControllers託管對象的關鍵值。我希望這是有道理的,因爲我對我的定義沒有信心。 – biscuitstack 2011-02-28 16:00:26

回答

2

這爲我工作:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSManagedObjectContext *clientsMoc= [clientsController managedObjectContext]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Clients" inManagedObjectContext:clientsMoc]; 
[fetchRequest setEntity:entity]; 
NSError *error = nil; 
NSArray *items = [clientsMoc executeFetchRequest:fetchRequest error:&error]; 
[fetchRequest release]; 
NSInteger *counter; 
counter = 0; 
for (NSString *s in items) { 
    NSManagedObject *mo = [items objectAtIndex:counter]; // assuming that array is not empty 
    id value = [mo valueForKey:@"clientCompany"]; 
    NSLog(@"a value is %@", value); 
    counter = counter + 1; 
}