とに問題がNSdictionary
ありNSArray
ます。私が達成しようとしているUILabel
のは、ループ内のさまざまなデータで繰り返されるものです。データはxmlファイルから取得されます。データを正しく解析しています。次を使用してデータを表示しました。
lblAffected = [[[outageDict objectForKey:@"Outage" ]objectForKey:@"outagenum" ]objectForKey:@"text" ];
私の問題は、1つの停止に関連付けられた複数の停止番号がある場合に発生します。以下は私が現在持っているものです。
if (mapCoordinateIsInPolygon) {
int outageIndex = [poly.title intValue];
NSDictionary *outageDict = [sections objectAtIndex:outageIndex];
//NSLog(@"hit, outageDict = %@", outageDict);
for (NSDictionary *data in outageDict){
NSArray *outageData = [outageDict objectForKey:@"Outage" ];
NSMutableArray *outageInfo = [[NSMutableArray alloc]init];
for(NSDictionary *outa in outageData){
[outageInfo addObject:[[outa objectForKey:@"outagenum"] objectForKey:@"text"]];
NSLog(@"ouatage %@", outageInfo);
}
int add = 0;
NSLog(@"ouatage %i", [outageInfo count]);
for (int i=0; i < [outageInfo count]; i++){
add = add+20;
lblAffected.frame = CGRectMake(130,add,320, 60);
NSLog(@"added : %i",add);
lblAffected.backgroundColor = [UIColor clearColor];
lblAffected.textColor = [UIColor redColor];
lblAffected.font = [UIFont fontWithName:@"Helvetica" size: 13.0];
lblAffected.lineBreakMode = UILineBreakModeWordWrap;
lblAffected.numberOfLines = 1;
lblAffected.text = outageInfo[i];
NSLog(@"outage Ifo %@",outageInfo[i]);
[headerView addSubview:lblAffected];
}
}
outageDictからデータを取得したら、ラベル内に保存してサブビューに表示する必要があります。複数の停止番号がある場合は、ラベル自体を複製して、すべての停止番号を20px下に表示する必要があります。最終的にはscrollView内に配置しますが、これを修正しようとしているだけです。
今私の質問は、辞書と配列で何が間違っているのかということです。複数の停止があるマップ上のポリゴンビューをタッチすると、ログファイルに表示されますが、停止が1つだけのポリゴンビューをタップするとクラッシュします。私はこれを間違った方法で行っていますか?エラーメッセージはで発生しています
[outageInfo addObject:[[outa objectForKey:@"outagenum"] objectForKey:@"text"]];
そしてそれを述べています
-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x6d2b160
どんな助けでもいただければ幸いです。