我是iOS編程的新手,我試圖用提取結果填充UIPickerView
。我能夠做到。由於有重複,我決定使用下面的代碼來獲取不同的記錄,只有所需的屬性。代碼工作正常,數組array1
& dictlevel1
有正確的數據(如下所示)。我無法弄清楚如何將array1
置入選取器視圖?任何幫助將非常感激。帶有不同記錄和UIPickerView的NSFetchRequest
NSError *error;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Factors" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setResultType:NSDictionaryResultType];
[fetchRequest setReturnsDistinctResults:YES];
[fetchRequest setPropertiesToFetch:@[@"level1"]];
self.title = @"Factors";
array1 = [[NSArray alloc] init];
array1 = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
NSDictionary *dictlevel1 = [array1 dictionaryWithValuesForKeys:[NSArray arrayWithObject:@"level1"]];
NSLog(@"%@", array1[1]);
NSLog(@"%@", [dictlevel1 dictionaryWithValuesForKeys:[NSArray arrayWithObject:@"level1"]]);
這裏是NSLog
輸出:
2012-10-23 14:55:47.774 CoreData2[1477:c07] (
{
level1 = "External Combustion Boilers";
},
{
level1 = "Internal Combustion Engines";
},
{
level1 = "Industrial Processes";
},
{
level1 = "Petroleum and Solvent Evaporation";
},
{
level1 = "Waste Disposal";
},
{
level1 = "Stationary Source Fuel Combustion";
},
{
level1 = "Miscellaneous Area Sources";
},
{
level1 = "Mobile Sources";
},
{
level1 = "Solvent Utilization";
},
{
level1 = "Storage and Transport";
},
{
level1 = "Waste Disposal, Treatment, and Recovery";
},
{
level1 = "Natural Sources";
}
)
2012-10-23 14:55:47.775 CoreData2[1477:c07] {
level1 = (
"External Combustion Boilers",
"Internal Combustion Engines",
"Industrial Processes",
"Petroleum and Solvent Evaporation",
"Waste Disposal",
"Stationary Source Fuel Combustion",
"Miscellaneous Area Sources",
"Mobile Sources",
"Solvent Utilization",
"Storage and Transport",
"Waste Disposal, Treatment, and Recovery",
"Natural Sources"
);
}
快速代碼註釋:您不需要此初始化行:'array1 = [[NSArray alloc] init];'。你將從'executeFetchRequest:error:'返回一個NSArray實例。如果你沒有使用ARC,你也在泄漏該初始化數組。 –
感謝您的提示。我會在我的代碼中改變它。 – Sriki