undeclared selector 警告

2014年8月16日

xcode

UIButtonを作成する関数を作った時に、クリック時の動作関数を指定する方法が、selfのviewcontroller内と外部関数で記述が違う(ていうか、バージョンアップに伴う、記述の違いなのか?) 元の記述は [btn addTarget:selfaction:@selector(hoge:) forControlEvents:UIControlEventTouchUpInside]; こんな感じで、「@selector(hoge:)」の箇所が問題のようだ。 [btn addTarget:uv action:sel_registerName('hoge') forControlEvents:UIControlEventTouchUpInside]; 上記を次のようにすることで、問題解決。 sel_registerName('hoge')」 ついでに、クリック時の引き渡し変数などが追加できるといいのに・・・ 試してないからわからんが、とにかくここは扱いづらいのがObjective-C

こんな感じ

[btn addTarget:self action:@selector(pageBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [uv.view addSubview:btn]; ↓↓↓ [btn addTarget:uv action:sel_registerName("pageBtnClick") forControlEvents:UIControlEventTouchUpInside]; [uv.view addSubview:btn];