1

iPhoneアプリで機能する方法を取得するのに苦労しています.他の方法は正常に機能していますが、これは機能します.

ボタンのタイトルを更新するメソッドに 2 つの変数を渡したいと考えています。ボタンを指定するための INT と、NSMutablearray からのテキストを参照するための INT。メソッドは次のとおりです。

void buttonLabelChange(int buttonNumber, int nameNumber){
    if (buttonNumber == 1) {
        [button1Outlet setTitle:[objectArray objectAtIndex:nameNumber] forState:UIControlStateNormal];
    } else {
        [button2Outlet setTitle:[objectArray objectAtIndex:nameNumber] forState:UIControlStateNormal];
    }
}

私が得るエラーは、「宣言されていない識別子 'button1Outlet' の使用」です。この正確なコード ([button1Outlet setTitle......) は、「viewDidLoad」セクションで魅力的に機能します。

私の .h ファイルには次が含まれています。

void buttonLabelChange();

私は一日の大部分で頭を壁にぶつけていましたが、グーグルでも(私が理解している..)役立つものを見つけることができません。提案?


助けてくれてありがとう!


Heres 私の新しい作業コード:

.m

- (void)buttonLabelChange:(int)buttonNumber name:(int)nameNumber{
    if (buttonNumber == 1) {
        [button1Outlet setTitle:[objectArray objectAtIndex:nameNumber] forState:UIControlStateNormal];
    } else {
        [button2Outlet setTitle:[objectArray objectAtIndex:nameNumber] forState:UIControlStateNormal];
    }
}

.h

void buttonLabelChange();

そしてそれを呼び出すには:

[self buttonLabelChange:1 name:randomP1];
4

2 に答える 2

3

コードはac関数であり、objective-cメソッドではありません。交換してみてください

void buttonLabelChange(int buttonNumber, int nameNumber)

- (void)buttonLabelChange:(int)buttonNumber name:(int)nameNumber

.h ファイルと .m ファイルの両方にあります。

于 2013-09-05T16:28:29.607 に答える
1

これは、ビュー オブジェクトの一部ではない関数にコードを配置したためです。関数がビュー コードと同じ実装ファイルにあるという理由だけで、ビュー オブジェクトへの特別なアクセス権は与えられません。

代わりにビュー メソッドを使用するか、ビュー インスタンスを関数に渡します (アウトレットだけでなく、アウトレットも公開する必要があるため、恐ろしいことobjectArrayです)。

void buttonLabelChange(UIView *view, int buttonNumber, int nameNumber){
    if (buttonNumber == 1) {
        [view.button1Outlet setTitle:[view.objectArray objectAtIndex:nameNumber] forState:UIControlStateNormal];
    } else {
        [view.button2Outlet setTitle:[view.objectArray objectAtIndex:nameNumber] forState:UIControlStateNormal];
    }
}
于 2013-09-05T16:26:09.923 に答える