OC 字符串转成bool类型的问题

探讨了Objective-C中NSString转换为BOOL类型的细节,发现不仅仅是nil或null会转为NO,特定字符如F也会转为NO,而T会转为YES。详细列举了各种字符串和数值转换到BOOL的结果,包括空字符串、数字、正负号等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前一直认为,OC中的NSString转成BOOL类型的时候,只有NNStringnil\null的时候才会转成NO,今天遇到了问题,NSString==F也转成了NONSString==T也转成了YES,其实NSString有许多字符也会转成NO
下面是网上抄的,用的时候先确认一下是否正确

NSDictionary *dic = @{@"d" : [NSNull null]};

    BOOL a1 = [@"" boolValue];//NO

    BOOL a2 = [@" " boolValue];//NO

    BOOL a3 = [@" 1 " boolValue];//YES

    BOOL a4 = [@"a" boolValue];//NO

    BOOL a5 = [@"t" boolValue];//YES

    BOOL a6 = [@"Y" boolValue];//YES

    BOOL a7 = [@"+0" boolValue];//NO

    BOOL a8 = [@"0" boolValue];//NO

    BOOL a9 = [@"0+" boolValue];//NO

    BOOL a0 = [@"y+" boolValue];//YES

    BOOL a10 = [@"+y" boolValue];//NO

    BOOL a11 = [@"ay" boolValue];//NO

    BOOL a12 = [@"ya" boolValue];//YES

    BOOL a13 = [@"1a" boolValue];//YES

    BOOL a14 = [@"a1" boolValue];//NO

    BOOL a15 = [@"+0y" boolValue];//NO

    BOOL a16 = [@"0+y" boolValue];//NO

    BOOL a17 = [[dic objectForKey:@"c"] boolValue];//nill NO

//    BOOL a18 = [[dic objectForKey:@"d"] boolValue];//Crash

    BOOL a18 = [@(0) boolValue];//NO

    BOOL a19 = [@(9) boolValue];//YES

    BOOL a20 = [@(-1) boolValue];//YES

    BOOL a21 = [@(+1) boolValue];//YES

    BOOL a22 = [@(-0) boolValue];//NO

    BOOL a23 = [@(+0) boolValue];//NO

    BOOL a24 = @(0);//YES

    BOOL a25 = @(1);//YES

    BOOL a26 = @"";//YES

    BOOL a27 = nil;//NO

    BOOL a28 = 0;//NO

    BOOL a29 = 1;//YES

    BOOL a30 = [NSNull null];//YES

    BOOL a31 = @{};//YES
    BOOL a32 = @{};//YES
--------------------- 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值