【发布时间】:2012-01-04 13:53:37
【问题描述】:
我在 Objective C 中相对较新,我设计了一个服务器-客户端应用程序,并对服务器端和客户端进行了编码。我在将 GET 发送到服务器后收到 JSON 对象,我需要的是,通过 JSON 数组(字典)来的标题被设置为我的应用程序视图中按钮的标题。我还想动态创建按钮,我的意思是如果我重置一些按钮,更改必须再次出现在我的应用程序中。请任何人帮助我:
- 如何创建 UIButton 数组并将其标题设置为 JSON 字典?
-
如何在视图中动态放置按钮。我可以分享代码 如果你愿意,也可以..
按钮 = 1; 键 = 181abc88e57c37a42769; 消息 = ( { ID = 1; 日期=“2011-12-10 16:00:00”; 消息 = asdf; 状态 = 1; “用户 ID” = 2; } ); “错误用户” = 0;
这是第一次获取的结果,在定义了它的错误之后,我收到了下面的 JSON 数据:
Response of Result2: (
{
ID = 1;
name = Ambulance;
},
{
ID = 2;
name = Police;
},
{
ID = 3;
name = "Somethings";
},
{
ID = 4;
name = Something Else;
}
)
我需要在我的视图中创建一些按钮,并使用此 JSON 数据中的名称设置它们的标题。我的整个 GET 代码如下,我的变量名可能不太清楚,抱歉.. 顺便说一下,我计算了按钮数组有多少个 ID,我将在创建按钮时使用它,以便设置按钮启用-禁用等..再次感谢
//## 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 数据格式会有所帮助
标签: objective-c ios5 uibutton