1

私はiOSが初めてです。何か問題がありますが、それに対する解決策はありますか?テキストフィールドに json 値を出力できません これは私のcontactViewController.mファイルです:

  - (void)viewDidLoad
    {
        [super viewDidLoad]; 
        // Do any additional setup after loading the view, typically from a nib.

        fname.text=@"Hello";
    }

ビューがロードされた後、hello値がテキスト ボックスに表示されますが、リスト ボタンを呼び出して json 値を取得すると、次のようになります。

-(IBAction)list:(id)sender{
    vedant=[[WebserviceViewController alloc]init];

    [vedant listContacts];

}

次にwebserviceViewController.m、jsonResponseを同じファイルに渡します。つまりcontactViewController.m、json値を解析して出力しますが、テキストフィールドに値が表示されません

-(void)allContacts:(NSString *)JSONResponse{
    NSLog(@"%@",JSONResponse);


    NSData *jsonData = [JSONResponse dataUsingEncoding:NSASCIIStringEncoding];
    //
    NSError *err;
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&err];
    int accCount =[json count];

    for(int i=0;i<accCount;i++){

        NSData *jsonData = [JSONResponse dataUsingEncoding:NSASCIIStringEncoding];
        //

        //   NSLog(@"%@",JSONResponse);

        NSError *err;
        NSDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&err];

        NSString *firstName = [NSString stringWithFormat:@"%@", [[json objectAtIndex:i] objectForKey:@"first_name"]];


        NSLog(@"%@",firstName);    //this prints the actual first name in console But

        fname.text=firstName;
        NSLog(@"%@",fname.text);   //it prints "(Null)" in console
    }

}

値を渡すためにデリゲートを作成する必要がありますか?

はい、そのようなデリゲートを作成するためのヘルプは、いくつかの記事または例です。

4

5 に答える 5

0

txtName.text = firstname; またはtxtName.text=[NSString stringWithFormat:@ "%@"、firstName];

于 2013-03-18T05:35:30.737 に答える
0

fnameでないかどうかを確認しnilます。Interface Builder で適切に接続するのを忘れた場合、fnameは になりnil、それに送信されたすべてのメッセージ ( などsetText:) は無視されます。

于 2013-03-04T09:17:53.447 に答える
0

最初に、テキストフィールドに fname 変数がバインドされていることを確認してください。はいの場合、これを使用して値を割り当ててみてください:

fname.text=[NSString stringWithFormat:@"%@",firstName];

これを試してみてください。これがうまくいくことを願っています。

于 2013-03-04T09:19:42.573 に答える
0

ファーストネーム (つまり、json の値) をグローバル値に取得し、そのグローバル値を textfield に割り当てます。とてもシンプルです。返信よりもまだ疑問がある場合は、サンプルコードを投稿します

于 2013-03-04T10:10:31.780 に答える