【问题标题】:Empty NSString doesn't log空 NSString 不记录
【发布时间】:2012-08-02 11:53:52
【问题描述】:

我想为 nsstring 设置自动值(如 c 构造函数)。请往下看:

NSLog(@"%@",[[currentNode element] class]);
NSLog(@"%@",[currentNode element]);
NSLog(@"hi!!!!");

控制台:

2012-08-02 14:43:46.958 Test[5070:207] NSCFString
2012-08-02 14:43:46.961 Test[5070:207] hi!!!!

第二个 NSlog 不工作,因为 [currentNode element] 为空!我怎样才能设置像@“-----”这样的值?我试图覆盖“init”,但没有成功。

【问题讨论】:

    标签: objective-c nsstring init


    【解决方案1】:

    使用简单的宏:

    #define MIGHT_BE_EMPTY(s) [s length] > 0 ? s : @"-----"
    
    NSLog(@"%@", MIGHT_BE_EMPTY([currentNode element]));
    

    【讨论】:

    • 错误信息:[NSCFString count]: unrecognized selector sent to instance 0x20928
    • @Econa 是的;这是length 不是count
    • @Econa 是的,holex 的解决方案很漂亮。祝你好运。
    【解决方案2】:

    它可能会帮助你:

    NSLog(@"%@", [[currentNode element] isEqualToString:@""]?(@"-----"):([currentNode element]));
    

    或者这个

    NSLog(@"string is : %@", [currentNode element]));
    

    【讨论】:

    • 您更喜欢哪个。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2016-07-26
    • 2012-08-26
    • 2020-07-20
    • 1970-01-01
    相关资源
    最近更新 更多