gpt4 book ai didi

ios - UIViewController 报告为响应 addChildViewController : on iOS 4

转载 作者:可可西里 更新时间:2023-11-01 03:33:18 24 4
gpt4 key购买 nike

有没有人遇到过这个?以下代码在 iOS 4 模拟器上运行时报告"is",但根据 Apple 文档,方法 addChildViewController 仅在 iOS 5 及更高版本上可用。这似乎不是正确的行为,这是一个错误吗?

if([UIViewController instancesRespondToSelector:@selector(addChildViewController:)]) {
NSLog(@"YES");
} else {
NSLog(@"NO");
}

最佳答案

我认为这是一个错误。调用 addChildViewController 似乎也没有任何警告或错误地运行。

我写了下面的 viewDidLoad:

- (void)viewDidLoad
{
[super viewDidLoad];

MyChildView *aChildViewController = [[MyChildView alloc] initWithNibName:@"MyChildView" bundle:nil];

// Do any additional setup after loading the view, typically from a nib.
SEL mySelector = @selector(addChildViewController:);
if([UIViewController instancesRespondToSelector:mySelector] == YES) {
NSLog(@"YES addChildViewController:");
[self addChildViewController:aChildViewController];
} else {
NSLog(@"NO addChildViewController:");
}

if([UIViewController instancesRespondToSelector:@selector(automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers)] == YES) {
NSLog(@"YES automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers");

} else {
NSLog(@"NO automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers");
}
}

在 iOS 4.3 模拟器中,我看到以下输出。这两条消息都仅限于 IOS 5.0 及更高版本。 addChildViewController 似乎在 4.3 模拟器中错误响应。我没有 4.3 设备无法在实际设备上进行测试。

2011-11-18 09:55:12.161 testViewFunctionality[873:b303] YES addChildViewController:
2011-11-18 09:55:12.162 testViewFunctionality[873:b303] NO automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers

在 iOS 5.0 Simulator 中,两者都会响应,这是正确的行为。

2011-11-18 09:59:31.250 testViewFunctionality[932:f803] YES addChildViewController:
2011-11-18 09:59:31.252 testViewFunctionality[932:f803] YES automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers

我在 Lion 上使用 XCode 4.2。当我查看 4.3 模拟器框架上的 UIViewController.h 时,没有提到 addChildViewController:automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers 但唯一包含的 SDK 是 5.0。

enter image description here

我想如果你想保持谨慎,你可以在正在运行的设备上测试正在运行的 iOS 版本。参见 How to check iOS version?

关于ios - UIViewController 报告为响应 addChildViewController : on iOS 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8143033/

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