[英]Creating an object from transformable core data on iOS using NSArray
我正在使用核心數據來檢索可傳輸對象,然后將其另存為NSArray,如下所示:
NSArray *bigDataResultsArray = [XAppDelegate.managedObjectContext executeFetchRequest:bigDataFetchRequest error:&error];
NSArray *bigDataResultsArrayJSON = [bigDataResultsArray valueForKey:@"bigData"];
我能夠將valueForKey縮小為較小的對象數組,但是它僅顯示為1個對象。
當我嘗試從以下內容中提取“值”時,出現以下錯誤:它不符合值。 數據采用以下格式,並且不會解析為JSON:
我嘗試使用以下方法提取值:
NSArray *styleArray = [bigDataResultsArrayJSON valueForKey:@"Styles"];
NSLog(@"%@", [styleArray valueForKey:@"Value"]);
這給出了一個錯誤。 但是,如果我記錄樣式數組,則會得到以下信息:
(
{
Total = 1;
Value = 5;
},
{
Total = 1;
Value = "5.5";
},
{
Total = 75;
Value = 6;
},
{
Total = 4;
Value = "6.5";
},
{
Total = 239;
Value = 7;
},
{
Total = 149;
Value = "7.5";
},
{
Total = 260;
Value = 8;
},
{
Total = 214;
Value = "8.5";
},
{
Total = 259;
Value = 9;
},
{
Total = 196;
Value = "9.5";
},
{
Total = 254;
Value = 10;
},
{
Total = 148;
Value = "10.5";
},
{
Total = 237;
Value = 11;
},
{
Total = 38;
Value = 12;
},
{
Total = 2;
Value = 13;
}
)
)
誰能協助我將這些數據的最后一層提取到值對象數組中。 我嘗試過如下轉換為NSData然后轉換為JSON,但是數據的格式無法解析:
NSData *raw = [[ra valueForKey:@"bigData"] dataUsingEncoding:NSUTF8StringEncoding]
任何幫助,不勝感激。
您可以從字典數組中僅提取一個字段的數組:
NSArray *dictArray = @[{@"total" : @1, @"value" : @5},
{@"Total" : @1, @"Value" : @5.5}, … ];
NSArray *resultsArray = [dictArray valueForKeyPath:@"value"];
---> @[@5, @5.5, …];
您可以對一組核心數據對象執行相同的操作:
// ... create the managed objects and fill their attributes
object.total = @1;
object.value = @5;
// etc
NSArray *resultsArray = [fetchedObjects valueForKeyPath:@"value"];
---> @[@5, @5.5, …];
您的styleArray是一個字典數組。 數組沒有鍵值對; 數組的每個元素都可以。 Mundi所說的是正確的答案,它將給您單一的價值觀。
為了明確起見,您可以遍歷styleArray的元素,並分別提取每個字典,也許對您而言這會更清楚。
NSArray *styleArray = [bigDataResultsArrayJSON valueForKey:@"Styles"];
NSMutableArray *valuesArray = [NSMutableArray array];
for (int i=0; i<styleArray.count; i++) {
NSDictionary *styleDictionary = styleArray[i];
id valueObj = [styleDictionary objectForKey:@"Value"];
[valuesArray addObject:valueObj];
}
NSLog(@"Values: %@", valuesArray);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.