gpt4 book ai didi

ios - 需要帮助独立调用方法: - (void) orientationChanged:(NSNotification *)note in iOS

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

我正在编写一个检查设备方向的应用程序,因此,我有以下代码块:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:[UIDevice currentDevice]];

依次调用以下方法:

- (void) orientationChanged:(NSNotification *)note {
...
}

我想做的是从我完全从一个单独的部分发布的初始代码块中单独调用上述方法。这可能吗?如果可能,如何实现?

最佳答案

在这种情况下,我通常做的是传递 nil 作为参数:

[self orientationChanged:nil];

这取决于通知本身对方法的实现有多重要。您可能必须构建一个包含适当信息的通知:

NSNotification *n = [NSNotification notificationWithName:@"someName" object:someObject];
[self orientationChanged:n];

但是,我开始将这种类型的需求视为一种代码味道,我尝试做的是将通知处理程序执行的工作提取到一个单独的方法中并直接调用该方法,例如:

- (void)handleOrientationChangeForDevice:(UIDevice *)d {
// do something here
}

- (void)orientationChanged:(NSNotification *)n {
[self handleOrientationChangeForDevice:n.object];
}

然后,在调用代码中,您可以执行如下操作:

[self handleOrientationChangeForDevice:[UIDevice currentDevice]];

关于ios - 需要帮助独立调用方法: - (void) orientationChanged:(NSNotification *)note in iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14168852/

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