当前位置:  开发笔记 > IOS > 正文

NSString比较在Objective-C中不起作用

如何解决《NSString比较在Objective-C中不起作用》经验,为你挑选了1个好方法。



1> Can Berk Güd..:

正如错误日志所示,authFlag不是一个NSString,而是一个NSCFBoolean.

你可以这样做:

NSCFBoolean *authFlag = [innerContent valueForKey:@"authenticationFlag"];

if([authFlag boolValue]) {
    NSLog(@"Logged in");
    self.view = homeView;
} else {
    NSLog(@"Not logged in");
}


[innerContent valueForKey:@"authenticationFlag"]返回指向NSCFBoolean的指针.您只是将指针值存储在NSString*中.这不会使尖头对象成为字符串.
您可以使用NSArray甚至UITableView轻松替换NSString.结果不会改变.指向的对象仍然是NSCFBoolean.
Objective-C对象的声明类型纯粹是因为编译器可以警告您两个声明的类型之间的不匹配.它与实际对象没有区别.请记住,这些都是指针 - 实际对象不存储在那里,只是指向其地址的指针.
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有