私はiphoneアプリケーションを開発しています。これでは、サーバーからのフィールド情報に従って動的にユーザー プロファイル フォームを生成する必要があります。
したがって、応答に 5 つのフィールドがある場合、それらのデータから 5 つのラベルを作成して、のセルに表示する必要がありuitableview
ます。
プロファイルの値ではなく、ユーザープロファイルのフィールドの名前を取得しているわけではありません。
それらのデータから動的にフォームを生成したい。
これらのデータを取得することはできますNSMutableArray
が、cellForRowAtIndexPath
メソッドでは null が表示されます。
どうすればこれを解決できますか?
私のコードスニペットは次のとおりです。
-(void) connectionDidFinishLoading:(NSURLConnection *)connection {
if (connection)
{
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
//You've got all the data now
//Do something with your response string
// NSLog(@"Response:%@",responseString);
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *object = [parser objectWithString:responseString error:nil];
NSString *pec_count = [object valueForKey:@"peculiarity_count"];
NSDictionary *pecs = [object valueForKey:@"peculiarities"];
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:nil];
[array addObject:@""];
for (int j= 1; j <= [pec_count integerValue] ; j++) {
NSString *val = [NSString stringWithFormat:@"%@%d",@"pec_",j];
NSString *pec_i = [pecs valueForKey:val];
NSString *modifiedString = [pec_i stringByReplacingOccurrencesOfString:@"_" withString:@" "];
NSString *capitalisedSentence = [modifiedString stringByReplacingCharactersInRange:NSMakeRange(0,1)
withString:[[modifiedString substringToIndex:1] capitalizedString]];
[array insertObject:capitalisedSentence atIndex:j];
}
self.peculiarity = array;
[self.table reloadData];
}
for (int j=0 ; j < [self.peculiarity count] ; j++) {
NSLog(@"info:%@", [self.peculiarity objectAtIndex: j]);
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
UIButton *racebtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
racebtn.frame = CGRectMake(240, 7, 10, 15);
[racebtn setBackgroundImage:[UIImage imageNamed:@"select.png"] forState:UIControlStateNormal];
[racebtn addTarget:self action:@selector(selectRace:)forControlEvents:UIControlEventTouchUpInside];
NSLog(@"cell=%@",[self.peculiarity objectAtIndex:3]);
}
どんな助けでも大歓迎です。ありがとうございました。