2012-02-29 54 views
3

我使用的標籤,以顯示各種字符串數據給出,但如果字符串沒有給予任何價值,我想在不顯示任何顯示什麼標籤但野兔在下面的代碼中顯示「空」,如果沒有價值是由刺。 我不想在標籤中顯示null ....我該如何解決它。標籤顯示爲空字符串,如果不給予任何價值....想,如果沒有價值的字符串

where_do_you_hurt.text = [NSString stringWithFormat:@"%@,%@,%@,%@",appdelegate.hurt_head,appdelegate.hurt_Arm, 
          appdelegate.hurt_leg,appdelegate.hurt_chest,appdelegate.hurt_Back]; 

回答

13

對於你不想讓每個值(null)打印,如果值爲nil,則需要提供一個空字符串。你可以這樣做是這樣的:

foo = [NSString stringWithFormat:@"%@", (obj ? obj : @"")]; 

obj ? obj : @""手段:如果對象是不是零(obj ?),然後傳遞對象(obj),否則傳遞空字符串(: @"")。

另一種方法是使用一個可變的字符串,然後做:

if (obj) { 
    [foo appendFormat:@"%@", obj]; 
} 
+3

您也可以縮短到'OBJ:@ 「」' – 2013-02-14 16:10:09

+0

對於我 的NSString * TEMP = [NSString的stringWithFormat: @「%@°F」,(temp?temp:@「」)]; 我得到「°F」而不是空的。任何快速解決?謝謝。 – MPaulo 2015-08-07 03:20:59

+0

@MPaulo:想想看:格式總是'@ 「%@°F」',無論哪個值'temp'了。您只會將您傳遞給_argument_的內容更改爲格式。一種解決方案是:'temp = temp? [NSString的stringWithFormat:@ 「%@°F」,溫度]:@ 「」;' – DarkDust 2015-08-07 07:25:09

2

如果你不想「空」出現了零的對象,那麼你需要,而不是提供一個空字符串:

where_do_you_hurt.text = [NSString stringWithFormat: 
          @"%@,%@,%@,%@", 
          appdelegate.hurt_head ? appdelegate.hurt_head : @"", 
          appdelegate.hurt_Arm ? appdelegate.hurt_Arm : @"", 
          appdelegate.hurt_leg ? appdelegate.hurt_leg : @"", 
          appdelegate.hurt_chest ? appdelegate.hurt_chest : @"", 
          appdelegate.hurt_Back ? appdelegate.hurt_Back : @""]; 
+0

感謝湯姆.....它是如此簡單..... – iosDev 2012-02-29 08:21:48

0

關於NSString ... [NSString stringWithFormat:@"%@", nil]將記錄作爲(null)

你可以把你的文字一起遞增,測試零值。

OR

你可以在你的appdelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.hurt_head = [NSString string]; 
    self.hurt_Arm = [NSString string]; 
    self.hurt_leg = [NSString string]; 
    self.hurt_chest = [NSString string]; 
    self.hurt_back = [NSString string]; 
    //... 
} 
+0

感謝Maudicus ......... – iosDev 2012-02-29 08:22:40

0

初始化的4個屬性u能使用

如果檢查空(標題==(ID)NSNull空] ||標題.length == 0)title = @「Something」;

+0

'nil'!='[NSNull空]' – DarkDust 2012-02-29 09:28:32

0

這是我做到了。它不像其他人那麼緊湊,但它的可讀性更強(這對我來說總是最重要的)。

它也有從開頭和結尾刪除尾部空格的利益。

// Remove any nulls from the first or last name 
firstName = [NSString stringWithFormat:@"%@", (firstName ? firstName : @"")]; 
lastName = [NSString stringWithFormat:@"%@", (lastName ? lastName : @"")]; 

// Concat the strings 
fullName = [NSString stringWithFormat:@"%@ %@", firstName, lastName]; 

// Remove any trailing whitespace 
fullName = NSString *newString = [oldString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
0

將這些文件直接導入到您的項目中,並使用rMtext代替文本屬性。

#import <UIKit/UIKit.h> 

@interface UILabel (NullHandling) 
@property(nonatomic,copy) NSString  *rMtext; 
@end 

#import "UILabel+NullHandling.h" 
#import <objc/message.h> 

@implementation UILabel (NullHandling) 
-(void)setRMtext:(NSString *)text { 

if(text!=nil){ 
text = [text stringByReplacingOccurrencesOfString:@"(null)" withString:@""]; 
    self.text=text;  
    } 
} 
-(NSString *)rMtext { 

    return self.text; 
} 
@end