我有三个TAG,tag1,tag2,tag3从webservices返回 我希望显示像 tag1,tag2& tag3 用逗号和“&”字 这是我的代码
NSString *tag1=[getSelectedArray valueForKey:@"tag1"];
NSString *tag2=[getSelectedArray valueForKey:@"tag2"];
NSString *tag3=[getSelectedArray valueForKey:@"tag3"];
NSString *getTags;
getTags=[NSString stringWithFormat:@"%@ , %@ & %@",tag1,tag2,tag3];
问题是当tag1和任何其他标记为null时,时间看起来像 **,tag2& ** 如何管理空值
答案 0 :(得分:1)
将所有标记检索更改为:
NSString *tag1=[getSelectedArray valueForKey:@"tag1"] ? [getSelectedArray valueForKey:@"tag1"] : @"";
其他两个标签相同。
<强> ***** **** EDIT 强>
如果你的字典返回NSNUll对象,你可以这样做:
NSString *tag1=[[getSelectedArray valueForKey:@"tag1"] isKindOfClass:[NSNull class]] ? [getSelectedArray valueForKey:@"tag1"] : @"";
答案 1 :(得分:0)
试试这个
NSString *getTags =[NSString stringWithFormat:@"%@ , %@ & %@",[getSelectedArray valueForKey:@"tag1"] isEqual:[NSNull null] ? tag1:@"",[getSelectedArray valueForKey:@"tag2"] isEqual:[NSNull null] ? tag2:@"",[getSelectedArray valueForKey:@"tag3"] isEqual:[NSNull null] ? tag3:@""];
答案 2 :(得分:0)
试用此代码,
NSString *getTags =(tag1 && tag2 && tag3)?[NSString stringWithFormat:@"%@ ,%@ & %@",tag1,tag2,tag3]:(tag1 && tag2)?[NSString stringWithFormat:@"%@ ,%@",tag1,tag2]:(tag1 && tag3)?[NSString stringWithFormat:@"%@ ,%@",tag1,tag3]:(tag2 && tag3)?[NSString stringWithFormat:@"%@ ,%@",tag2,tag3]:tag1?tag1:tag2?tag2:tag3?tag3:@"";