2012-06-20 62 views
1

嗨,我現在的儲蓄從一個MultableArray數據庫未來值,然後在CoreData:CoreData中保存的字符串返回<null>和字符串。爲什麼?

NSMultableArray *mutary = [[NSMultableArray alloc] init]; 
     NSManagedObjectContext *context = [app managedObjectContext]; 
    for(int n=0; n<[AttributeArray count]; n++) 
    { 

    [mutary addObject:[[AttributeArray objectAtIndex:n] objectForKey:@"AttributName"]]; 
    NSLog(@"%@", mutary); 
} 
attributeString = [mutary componentsJoinedByString:@","]; 

raume = [NSEntityDescription insertNewObjectForEntityForName:@"Raum" inManagedObjectContext:context]; 

raume.raumattribut = attributeString; 

if (![context save:&error]) { 
NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
abort(); 

}

的NSLog輸出的MultableArray是:

2012-06-20 17:21:00.047 book-app[31984:15803] (
    A7OVERHEAD, 
    Beamer 
) 

到目前爲止,它的工作正確。數據庫中的兩個期望值現在位於Array中。 現在我從CoreData獲取這些屬性:

NSManagedObjectContext *context = [app managedObjectContext]; 
    NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Raum" inManagedObjectContext:context]; 
    [request setEntity:entity]; 
    NSError *error = nil; 
    NSArray *events = [context executeFetchRequest:request error:&error]; 

for (Raum *att in events) 
    { 
    stringAttribute = [[events valueForKey:@"raumattribut"] componentsJoinedByString:@","]; 
    NSLog(@"ATTRIBUTE: %@", stringAttribute); 
    } 
} 

到目前爲止好。但是,如果我現在看我的NSLog輸出:

2012-06-20 17:21:00.055 book-app[31984:15803] ATTRIBUTE: <null>,A7OVERHEAD,Beamer 

CoreData正在返回,然後兩個值。那來自哪裏?

有人可以幫忙嗎?

在此先感謝

回答

1

編輯:經過一番調查和澄清(見註釋),這裏是我的回答: 上一個NSArray調用valueForKey返回,其中,通過調用valueForKey的每個成員上創建的每個元素的數組原始數組。這意味着您的輸出表明您的提取請求返回了3個總計對象,並且第一個沒有設置它的raumattribut屬性。

上一個回答: 您正在對NSArray實例(查詢結果)調用valueForKey。也許你需要 get objectAtIndex:0首先使用你正在迭代值的變量? valueForKey可能返回零。

stringAttribute = [[att valueForKey:@"raumattribut"] componentsJoinedByString:@","]; 

或類似的。

編輯: 起初我錯過了用於在第二部分循環中,我已編輯上面的代碼樣品使用attr,其

+0

如果我不喜歡它,它僅返回(空)。還有其他解決方案嗎? – Paks

+0

我編輯了我的答案。雖然我不確定raumattribut屬性是什麼類型,並且componentsJoinedByString在那裏是適當的。 –

+0

這不工作。我得到和錯誤: - [NSCFString componentsJoinedByString]無法識別的選擇器..「raumattribute」是一個NSString,你爲什麼要調用[att valueForKey:@「raumattribut」]而不是[events valueForKey:@「raumattribut」] – Paks

相關問題