3

質問のタイトルが基本的に知らされていないようでしたら、ごめんなさい。私がやろうとしていることを説明させてください。

次のUIViewControllerサブクラスを定義しました。これは、LocationManagerを起動し、GPSトラックを保存するための[記録の開始]ボタンがあります。

次に、加速度計を起動して、ユーザーがそれを記録できるようにします。

私のViewControllerサブクラスはLocationManagerデリゲートですが、Accelerometerデリゲートには何を使用する必要がありますか?同じビューを使用できますか、それともサブビューを定義する必要がありますか?

UIViewControllerサブクラスのインターフェイスは次のとおりです。

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

-(void)toggleButton;

必要に応じてさらに多くのコードを投稿できますが、これだけが当てはまると思います。あなたの助けに感謝します、私はちょうどiPhone開発に入っています、そして私の専門知識は、もしあれば、ポインタのないプログラミング言語にあります:)

4

1 に答える 1

8

1つのコントローラオブジェクトを複数のもののデリゲートにすることは完全に合理的です。唯一のキッカーは、LocationManagerとAccelerometerの両方に重複するデリゲートメソッドがある場合、つまり、両方のデリゲートが同じシグネチャを持つメソッドに応答する必要がある場合です。

それを超えると、コントローラーを両方のデリゲートに設定するのとほぼ同じ方法で、コントローラーを両方のデリゲートに設定するだけです。

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

以降:

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

ネーミングを失礼します。必要なAccelerometerクラスとLocationManagerクラスの名前が頭からわかりません。思いついた説明的な名前を使用しました:)

于 2009-07-09T23:15:51.373 に答える