2016-11-04 9 views
-2

WebサービスからUIピッカービューにデータをロードしようとしています。これは空白として表示されます。以下は私のコードです。データがUIpickerviewに読み込まれない

NSMutableArray * flooring; 
NSDictionary *dictionary; 
NSString *floorname; 
NSString *floorid; 

- (void)viewDidLoad { 
    floorname = @"Name"; 
    floorid = @"IntFloorId"; 
    NSString *strURL=[NSString stringWithFormat:@"http://123.63.83.11:8002/api/Floor/LoadFloorType"]; 
    NSData *jsonSource = [NSData dataWithContentsOfURL: 
          [NSURL URLWithString:strURL]]; 
    id jsonObjects = [NSJSONSerialization JSONObjectWithData: 
         jsonSource options:NSJSONReadingMutableContainers error:nil]; 
    for (NSDictionary *dataDict in jsonObjects) { 
     NSString *Name = [dataDict objectForKey:@"Name"]; 
     NSString *floorid1 = [dataDict objectForKey:@"IntFloorId"]; 
     dictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
        Name,floorname,floorid1,floorid, nil]; 
     [flooring addObject:dictionary]; 
    } 


-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    return 1; 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    return flooring.count; 
} 
    - (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    NSDictionary *tmpDict = [flooring objectAtIndex:row]; 
    NSString * f = [tmpDict objectForKey:@"Name"];return f; 
} 

助けてください。

+0

含まれるクラスは、UIPickerViewDelegateとUIPickerViewDataSourceの両方に準拠していますか? –

答えて

2

flooringは決して初期化されていないので空になります。

追加:あなたのviewDidLoad方法で

flooring = [NSMutableArray array]; 

また、デバッガを使用する方法も学びます。あなたがコードをデバッグした場合、これはずっと前に見つかったでしょう。

+0

ニース。私の間違いを犯してしまった。配列を初期化することを忘れている。もう1つの疑問? –

+0

この質問に直接関連する簡単な質問がある場合は、ここでコメントしてください。無関係な場合は、十分な研究を行った後に新しい質問を投稿する必要があります。 – rmaddy

+0

大丈夫別途ご質問させていただきます。 –

関連する問題