gpt4 book ai didi

ios - 为什么我没有从 NSStringFromClass 获得 NSString?

转载 作者:行者123 更新时间:2023-11-28 22:52:31 25 4
gpt4 key购买 nike

你会认为这会返回一个 NSString:

NSString *class = NSStringFromClass([[_array objectAtIndex:([_array count] -2)] class]);

NSLog(@"Is a kind of NSString: %@", ([[_class classForCoder] isSubclassOfClass:[NSString class]])? @"Yes" : @"No");

if ([class isEqualToString:@"MapViewController"]) {
[_appDelegate.navController0 pushViewController:_userListController animated:YES];

} else {
[_appDelegate.navController3 pushViewController:_userListController animated:YES];
}

但由于某种原因它没有,导致这次崩溃:

Is a kind of NSString: No
-[NSKeyValueObservationInfo isEqualToString:]: unrecognized selector sent to instance 0x6e69080

即使我尝试这样做:

NSString *class = (NSString *)[[_array objectAtIndex:([_array count] -2)] class];

它仍然没有返回 NSString,导致崩溃:

Is a kind of NSString: No
+[MapViewController isEqualToString:]: unrecognized selector sent to class 0xd4460

我知道最后一个例子有点牵强,但我对为什么我没有从任何一个返回 NSString 都一无所知?

最佳答案

当我从方法外部访问 NSString“类”时,我会遇到各种古怪的错误。所以我所做的是添加一点保留声明:

NSString *class = [NSStringFromClass([[_array objectAtIndex:([_array count] -2)] class]) retain];

现在它就像一个魅力一样工作。

关于ios - 为什么我没有从 NSStringFromClass 获得 NSString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11592667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com