我是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