1

私はObejctiveCを初めて使用するので、これが簡単な質問である場合はご容赦ください。(Facebook IOS統合チュートリアルから)以下のコードを機能させようとしていますが、行でエラーが発生します

- (void) logoutButtonClicked:(id)sender {
    [facebook logout];

エラーが発生します

「宣言されていない識別子の使用」logoutButtonClicked。これは、定義されていないメソッドを実装していることを示していることを私は知っています。だから私の質問は、以下のコードでメソッドが定義されている場所はどこですか?

私はここに投稿された解決策を見ましたが、それは私にとってはうまくいきません、このエラーは持続します。私は別の方法で試して修正を試みましたが、このコードブロックが何をしているのかを確認してください。

私の理解では、UIButtonへのポインター(logoutButton)の作成を開始し、次にそのパラメーターを設定します。次に、セレクターを使用して、UIControlEventTouchInsideメソッドのアクションメッセージ(LogoutButtonClicked)を定義します。

ここの行はインスタンスメソッドを定義していると思ったので、メソッドがどのように宣言されているのか完全には理解していません。

-(void) logoutButtonClicked:(id)sender {
        [facebook logout];

または、で宣言されているメソッドです

[logoutButton addTarget:self action:@selector(logoutButtonClicked)
           forControlEvents:UIControlEventTouchUpInside];

// Add the logout button
    UIButton *logoutButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    logoutButton.frame = CGRectMake(40, 40, 200, 40);
    [logoutButton setTitle:@"Log Out" forState:UIControlStateNormal];
    [logoutButton addTarget:self action:@selector(logoutButtonClicked)
           forControlEvents:UIControlEventTouchUpInside];
    [self.viewController.view addSubview:logoutButton];
    // Method that gets called when the logout button is pressed
    - (void) logoutButtonClicked:(id)sender {
        [facebook logout];
    }

私は誰かがこれを助けてくれて本当にありがたいです、これを理解しようと奮闘してきましたが無駄になりました。

メルビン

4

2 に答える 2

3

コロンはセレクターの名前の一部です。

@selector(logoutButtonClicked:)
                             ^

いいえ

@selector(logoutButtonClicked)
于 2012-05-13T07:16:55.020 に答える
2

別のメソッドの途中でメソッドを正しく定義しているようです。そんなことはできません。台詞:

- (void) logoutButtonClicked:(id)sender {
    [facebook logout];
}

別のメソッドの中括弧 ( {... }) 内ではなく、他のメソッドの外に表示する必要があります。

于 2012-05-13T07:48:19.140 に答える