0

こんにちは、プログラミング初心者です。

NSDictionary セルと Table セルに問題があります。良いチュートリアルを見つけようとしましたが、役立つものは見つかりませんでした。JSONKit を使用して json を解析しています。古いバージョンの xcode があり、シミュレーター 4.3 しかありません。

私がやりたいことは、Json を解析してセルを含むテーブルにすることです。

解析したいjson:

{[{"n_id":"1","name":"Green","age":"23"}]}

私の主な問題。エラーは発生しませんが、アプリを実行すると自動的に閉じます。//cell.textLabel.text = [studName objectAtIndex:indexPath.row]; をコメントアウトすると、cell.textLabel.text = @"Test"; だけに置き換えます。アプリと出力は正常に動作します。NSLog(); も取得できます。値

私のエラーは cell.textLabel.text = [studName objectAtIndex:indexPath.row]; にあると思います。前もって感謝します

//Json2ViewController.m

- (void)viewDidLoad {
[super viewDidLoad];



NSData * JSONdata =[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://myurl.php"]];

 if([JSONdata length] == 0){
 [JSONdata release];
 return;
 }

NSArray *students =[JSONdata objectFromJSONData];

studName = [[NSMutableArray alloc] init];

for(NSDictionary *student in students)
{
    NSLog(@"Name: %@", [student objectForKey:@"name"]);
    NSLog(@"Age: %@", [student objectForKey:@"age"]);

    content = [student objectForKey:@"name"];
    if(content)
       [studName addObject:content];

}

}


 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}


    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}

// Configure the cell...
cell.textLabel.text = [studName objectAtIndex:indexPath.row];
return cell;

}

NSMutableArray についてはよくわかりません。

//Json2ViewController.h

@interface Json2ViewController : UIViewController {
NSArray * list;
NSString * content;
NSMutableArray *studName;

}

4

1 に答える 1

1

これを試して:

 //Declare NSMutableArray *studName= [[NSMutableArray alloc] init]; in your .h file.
// 3. iterate the array; each element is a dictionary...


 for (NSDictionary *results in list)
    {
        // 3 ...that contains a string for the key "stunde"
        content = [results objectForKey:@"n_name"];
        if(content)
            [studName addObject:content];
    }  

インデックスの行のテーブルデリゲートメソッドセル

  // Configure the cell...
            cell.textLabel.text = [studName objectAtIndex:indexPath.row];
于 2013-01-06T12:26:46.633 に答える