比較的新しいObjective Cでは、私はサーバークライアントアプリケーションを設計し、サーバー側とクライアント側の両方をコード化しました。私はサーバーにGETを送信した後にJSONオブジェクトを受け取って、必要なものはJSON配列(辞書)を介して表示されるタイトルをアプリケーションのビューのボタンのタイトルとして設定します。私はまた、動的にボタンを作成したい、私はいくつかのボタンをリセットする場合は、変更が私のアプリケーションに再び来なければならないことを意味します。誰でもについて私を助けることができるしてください:UIButton配列を作成し、そのタイトルをJSON辞書の内容で設定する方法は?
- UIButtonの配列を作成し、 JSON辞書の内容とそのタイトルを設定する方法は?
ビューにボタンを動的に配置する方法。あなたが望むなら、コード も共有できます..
ボタン= 1; key = 181abc88e57c37a42769; メッセージ=( {ID = 1; 日付= "2011年12月10日16時00分00秒"; メッセージ= ASDF; ステータス= 1; "USER_ID" = 2;} )。 "wrong_user" = 0;
これは最初のgetのために結果であり、そのfariablesを定義した後、私は下にJSONデータを受け取る:
Response of Result2: (
{
ID = 1;
name = Ambulance;
},
{
ID = 2;
name = Police;
},
{
ID = 3;
name = "Somethings";
},
{
ID = 4;
name = Something Else;
}
)
私は必要なものを私の見解ではいくつかのボタンを作成することですこのJSONデータの名前でタイトルを設定します。私のGETコード全体は以下の通りです。私の変数名はそれほど明確ではないかもしれません。ところで、私はボタン配列のIDの数を数えます。ボタン有効無効のect ..おかげで再び
//## GET code to here**
NSString *str1=[@"?username=" stringByAppendingString:userNameField.text];
NSString *str2=[@"&password=" stringByAppendingString:passwordField.text];
NSString *str3=[str1 stringByAppendingString:str2];
NSString *str4 =[@"http://" stringByAppendingString:serverField.text];
NSURL *url=[NSURL URLWithString:[str4 stringByAppendingString:[@"/ipad/login.php" stringByAppendingString:str3]]];
NSLog(@"%@\n",url);
//get the url to jsondata
NSData *jSonData=[NSData dataWithContentsOfURL:url];
if (jSonData!=nil) {
NSError *error=nil;
id result=[NSJSONSerialization JSONObjectWithData:jSonData options:
NSJSONReadingMutableContainers error:&error];
if (error==nil) {
NSDictionary *mess=[result objectForKey:@"message"];
NSDictionary *messContent=[mess valueForKeyPath:@"message"];
NSDictionary *messDate=[mess valueForKeyPath:@"date"];
NSDictionary *messID=[mess valueForKeyPath:@"ID"];
NSLog(@"%@ *** Message %@ \n Message Content: %@ \n Mesage ID: %@ \n Message Date: %@", result, mess, messContent, messID,messDate);
NSString*key1=[ result objectForKey:@"key" ];
NSString *s1=[@"http://" stringByAppendingString:serverField.text];
NSString *s2=[s1 stringByAppendingString:@"/ipad/button.php"];
NSURL *url2=[NSURL URLWithString:[s2 stringByAppendingString:[@"?key=" stringByAppendingString:key1]]];
NSLog(@"\n%@\n",url2);
NSData *data2=[NSData dataWithContentsOfURL:url2];
id result2=[NSJSONSerialization JSONObjectWithData:data2 options:NSJSONReadingMutableContainers error:nil];
NSLog(@"\n\n\n******* ************ \n\n *********** ***********\n\nResponse of Result2: %@",result2);
NSArray *idd=[result2 valueForKeyPath:@"ID"];
NSString *iddName=[result2 valueForKeyPath:@"name"];
NSLog(@"-- %@ -- %@ -- \n The Count Of Buttons: %d", idd, iddName, [idd count]);
id sender;
[self performSegueWithIdentifier:@"sg1" sender:sender];
}
}
私はまだ結果を得ることができませんでした。 [view addSubview:button]
に問題があり、UIViewController *view;
と宣言してそのプロパティを準備しましたが、今度はUIViewContrpller
というプロパティを持つことはできません。誰かが何か考えを与えることができます、私は結果をも探検したが、何かを把握することができませんでした。両方のビューは同じクラスに属し、ユーザーアカウント用のビューとアプリケーションパネル用のビュー(ボタンを配置する場所を意味します)
これはJSONデータ形式を知るのに役立ちます –