标签的 setText - Objective C Xcode 7
setText for Label - Objective C Xcode 7
我是 iOS 开发的新手 我遇到了标签不想在 NSArray 中显示值的问题。请哪位大神帮忙指出哪里错了,为什么?
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
json_data = [json objectForKey:@"data"];
content = [json_data objectForKey:@"content"];
NSMutableArray *contentTemp = [[NSMutableArray alloc] initWithCapacity:content.count];
for (NSDictionary *contentInfo in content) {
project_details *mvm = [[project_details alloc] init];
mvm.bname = contentInfo[@"bname"];
mvm.burl = contentInfo[@"burl"];
mvm.p_num = contentInfo[@"p_id"];
mvm.pname = contentInfo[@"pname"];
mvm.pdesc = contentInfo[@"pdesc"];
mvm.purl = contentInfo[@"purl"];
mvm.plive = contentInfo[@"plive"];
mvm.pcompleted = contentInfo[@"pcompleted"];
mvm.days = contentInfo[@"days"];
mvm.pfunds = contentInfo[@"pfunds"];
mvm.amount = contentInfo[@"amount"];
mvm.perc = contentInfo[@"perc"];
[contentTemp addObject:mvm];
}
self.projectArray = contentTemp;
dispatch_async(dispatch_get_main_queue(), ^{
[self.label setText:[NSString stringWithFormat:@"%@", [self.projectArray valueForKey:@"bname"]]];
NSLog(@"%@", [self.projectArray valueForKey:@"bname"]);
});
}];
[dataTaskProject resume];
当我 运行 代码时我得到了什么:NSLog 打印正确的值但 setText 方法将“(”打印到标签。
这是我没有放入 URL 的代码,运行 编译代码时没有错误。
projectArray 在 .h 文件中定义为:@属性 (nonatomic, copy) NSArray *projectArray;
这是在 NSLog 中打印的内容:
2016-06-06 18:28:10.281 #####[37127:1228517] (
"Global Giving" )
在 NSArray returns 上调用 valueForKey
NSArray。您可能想要的是 [(mvm *)self.projectArray.firstObject bname]
。您的 self.projectArray
包含一个或多个 mvm
对象,这些对象具有 bname
属性.
你可以把.firstObject
改为数组索引(即[1]
、[2]
等),这取决于你想在数组中访问什么(我不清楚来自你的代码)。
我是 iOS 开发的新手 我遇到了标签不想在 NSArray 中显示值的问题。请哪位大神帮忙指出哪里错了,为什么?
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
json_data = [json objectForKey:@"data"];
content = [json_data objectForKey:@"content"];
NSMutableArray *contentTemp = [[NSMutableArray alloc] initWithCapacity:content.count];
for (NSDictionary *contentInfo in content) {
project_details *mvm = [[project_details alloc] init];
mvm.bname = contentInfo[@"bname"];
mvm.burl = contentInfo[@"burl"];
mvm.p_num = contentInfo[@"p_id"];
mvm.pname = contentInfo[@"pname"];
mvm.pdesc = contentInfo[@"pdesc"];
mvm.purl = contentInfo[@"purl"];
mvm.plive = contentInfo[@"plive"];
mvm.pcompleted = contentInfo[@"pcompleted"];
mvm.days = contentInfo[@"days"];
mvm.pfunds = contentInfo[@"pfunds"];
mvm.amount = contentInfo[@"amount"];
mvm.perc = contentInfo[@"perc"];
[contentTemp addObject:mvm];
}
self.projectArray = contentTemp;
dispatch_async(dispatch_get_main_queue(), ^{
[self.label setText:[NSString stringWithFormat:@"%@", [self.projectArray valueForKey:@"bname"]]];
NSLog(@"%@", [self.projectArray valueForKey:@"bname"]);
});
}];
[dataTaskProject resume];
当我 运行 代码时我得到了什么:NSLog 打印正确的值但 setText 方法将“(”打印到标签。
这是我没有放入 URL 的代码,运行 编译代码时没有错误。
projectArray 在 .h 文件中定义为:@属性 (nonatomic, copy) NSArray *projectArray;
这是在 NSLog 中打印的内容:
2016-06-06 18:28:10.281 #####[37127:1228517] (
"Global Giving" )
在 NSArray returns 上调用 valueForKey
NSArray。您可能想要的是 [(mvm *)self.projectArray.firstObject bname]
。您的 self.projectArray
包含一个或多个 mvm
对象,这些对象具有 bname
属性.
你可以把.firstObject
改为数组索引(即[1]
、[2]
等),这取决于你想在数组中访问什么(我不清楚来自你的代码)。