1
我需要幫助來檢索一個JSON對象和解析數組到我的UIPickerView與2列。一列是從JSON中檢索的數據,另一列是硬編碼的。 是否有解析JSON到UIPickerView列的示例代碼?UIPickerView與JSON
我需要幫助來檢索一個JSON對象和解析數組到我的UIPickerView與2列。一列是從JSON中檢索的數據,另一列是硬編碼的。 是否有解析JSON到UIPickerView列的示例代碼?UIPickerView與JSON
我給你一些代碼讓你開始,但請記住: 它沒有優化的代碼(例如你在主線程中執行的取數據的調用,如果你需要獲取大量的數據,你必須進行異步調用)。它對於理解如何實現UIPickerView delegate &至關重要。 我希望這會讓你走上正軌...
// Get your JSON Data
NSData *jsonData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.mydomain.com/myjson.json"]];
// Convert your JSON object to an 'NS' object
NSError *error;
id myJsonObj = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:&error];
// Extract any data from your JSON object
NSArray *myFirstArray = ...; // Your fixed array
NSArray *mySecondArray = ...; // An array with data from your JSON
// In your UIPIckerView datasource
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
switch(component)
{
case 0:
// First component
return [myFirstArray count];
break;
case 1:
// Second component
return [mySecondArray count];
break;
default:
return 0;
break;
}
return 0;
}
// In your UIPIckerView delegate
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
switch(component)
{
case 0:
// First component
return [myFirstArray objectAtIndex:row]; // We assume that you got NSString objects in the array
break;
case 1:
// Second component
return [mySecondArray objectAtIndex:row]; // We assume that you got NSString objects in the array
break;
default:
return 0;
break;
}
return @"";
}