gpt4 book ai didi

iphone - 如何将 View Controller 设置为两个事物(例如位置管理器和加速计)的委托(delegate)?

转载 作者:行者123 更新时间:2023-12-03 19:34:03 25 4
gpt4 key购买 nike

如果我的问题标题看起来根本不知情,我很抱歉。让我解释一下我想要做什么。

我定义了以下 UIViewController 子类,它会启动 LocationManager,并有一个“开始录制”按钮来保存 GPS 轨迹。

现在我还想启动加速度计并允许用户记录它。

我的 ViewController 子类是 LocationManager 委托(delegate),那么我应该为 Accelerometer 委托(delegate)使用什么?我可以使用相同的 View ,还是需要定义一个 subview ?

这是我的 UIViewController 子类的界面:

@interface RootViewController : UIViewController <CLLocationManagerDelegate> {
NSMutableArray *eventsArray;
NSManagedObjectContext *managedObjectContext;
CLLocationManager *locationManager;
BOOL recording;
UILabel *pointLabel;
UIButton *startStop;
}

-(void)toggleButton;

如果需要,我可以发布更多代码,但我认为这就是全部适用的代码。感谢您的帮助,我刚刚开始 iPhone 开发,我的专业知识(如果有的话)在于无指针编程语言:)

最佳答案

让一个 Controller 对象作为不止一件事的委托(delegate)是完全合理的。唯一的问题是,如果您的 LocationManager 和您的 Accelerometer 碰巧都有重叠的委托(delegate)方法,即,如果它们都要求其委托(delegate)响应具有相同签名的方法。

除此之外,您只需将 Controller 设置为两者的委托(delegate),与将其设置为其中一个的委托(delegate)的方式大致相同:

@interface Controller : UIViewController
<CLLocationManagerDelegate, AccelerometerDelegate>
{
...
}

然后,稍后:

[myLocationManager setDelegate:myController];
[myAccelerometer setDelegate:myController];

请原谅命名。我根本不知道您需要的 Accelerometer 和 LocationManager 类的名称是什么。我只是使用了想到的任何描述性名称:)

关于iphone - 如何将 View Controller 设置为两个事物(例如位置管理器和加速计)的委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1106852/

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