作者:帆侮听我悄悄说星星 | 2023-08-28 17:34
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对象的声明类型纯粹是因为编译器可以警告您两个声明的类型之间的不匹配.它与实际对象没有区别.请记住,这些都是指针 - 实际对象不存储在那里,只是指向其地址的指针.