更新
我正在进行api调用getPacks()并成功获取两个变量_numberOfPacks和_numberOfAutoRefills的值。
但是,当我尝试将其放入标签时,它会失败,并将输出设为(null)Packs& (null)Autorefiils
按以下顺序进行调用:
getpacks()------- first(它将_numberOfPacks和_numberOfAutoRefills上的值设置为全局变量
drawQuantity()-----在标签上设置_numberOfPacks和_numberOfAutoRefills。
-(void) getPacks: (IHPlacedOrder*)order{
NSOperationQueue *networkQueue = [[NSOperationQueue alloc] init];
networkQueue.maxConcurrentOperationCount = 5;
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://XXXXXXX.XXXXX/%@",order.ID]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]
initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
if([string isEqualToString:@""]){
} else {
NSMutableDictionary *dict=[NSJSONSerialization JSONObjectWithData:[string dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:nil];
NSLog(@"%@",dict);
_numberOfPacks = [[dict objectForKey:@"prescription_interval"] valueForKey:@"quantity_per_interval"];
_numberOfAutoRefills = [[dict objectForKey:@"prescription_interval"]valueForKey:@"num_intervals"];
NSLog(@"PACKS:%@ , AUTOREFILLS:%@",_numberOfPacks,_numberOfAutoRefills);
_quantity.text = [NSString stringWithFormat: @"%@,%@",_numberOfPacks,_numberOfAutoRefills];
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%s: AFHTTPRequestOperation error: %@", __FUNCTION__, error);
}];
[networkQueue addOperation:operation];
}
接下来是:
-(void)drawQuantity: (IHPlacedOrder*)order{
PPLinearLayoutLabelItem *quantityLabel = [[PPLinearLayoutLabelItem alloc] initWithText:[NSString stringWithFormat:@"%@ QUANTITY & %@ REFILLS", _numberOfPacks,_numberOfAutoRefills] font:[PPFonts regular18] maxWidth:[LayoutValues getMaxWidthClipped]];
[quantityLabel setPaddingBottom:5];
[quantityLabel setPaddingTop:20];
[self.topContainerContent addObject:quantityLabel];
NSString* quantityText = [NSString stringWithFormat:@"Packs + Autorefills"];
PPLinearLayoutLabelItem *quantity = [[PPLinearLayoutLabelItem alloc] initWithText:quantityText font:[PPFonts genericParagraphFontBold] maxWidth:[LayoutValues getMaxWidthClipped]];
[quantity setPaddingBottom:20];
[self.topContainerContent addObject:quantity];
LinearLayoutHorizontalLine *line1 = [[LinearLayoutHorizontalLine alloc] initWithMaxWidth:[LayoutValues getMaxWidthClipped]];
[self.topContainerContent addObject:line1];
}
答案 0 :(得分:0)
我找到了解决方案。我使用错误的方法调用来设置标签。问题是我的应用程序使用PPLinearLayoutLabelItem作为自定义构建标签。我不得不打电话给[self.quantity setLabel:@"%@",data_fromapi]以使其正常工作。 setText只是在PPLinearLayoutLabelItem类中设置文本而不设置Label。