ハマったとこは全て記録残す覚悟でブログを書きます!

ボタンにIBAction設定して、ボタン押したらラベルが変わる簡単なプログラム作ったのですが、
ボタンを押すと、落ちます!

main.mのソースが表示され、

int retVal = UIApplicationMain(argc, argv, nil, nil);

の横に緑色のコメントで
Program received signal: "SIGABRT"

と出ます。
71625dd4.png


コンソールログはこんな感じ。

2011-08-12 17:57:49.613 HelloWorld2[2673:b303] -[HelloWorld2ViewController tapBtn:]: unrecognized selector sent to instance 0x689b400
2011-08-12 17:57:49.616 HelloWorld2[2673:b303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[HelloWorld2ViewController tapBtn:]: unrecognized selector sent to instance 0x689b400'
*** Call stack at first throw:
(
0 CoreFoundation 0x00dc05a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x00f14313 objc_exception_throw + 44
2 CoreFoundation 0x00dc20bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00d31966 ___forwarding___ + 966
4 CoreFoundation 0x00d31522 _CF_forwarding_prep_0 + 50
5 UIKit 0x000124fd -[UIApplication sendAction:to:from:forEvent:] + 119
6 UIKit 0x000a2799 -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x000a4c2b -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
8 UIKit 0x000a37d8 -[UIControl touchesEnded:withEvent:] + 458
9 UIKit 0x00036ded -[UIWindow _sendTouchesForEvent:] + 567
10 UIKit 0x00017c37 -[UIApplication sendEvent:] + 447
11 UIKit 0x0001cf2e _UIApplicationHandleEvent + 7576
12 GraphicsServices 0x00ff9992 PurpleEventCallback + 1550
13 CoreFoundation 0x00da1944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
14 CoreFoundation 0x00d01cf7 __CFRunLoopDoSource1 + 215
15 CoreFoundation 0x00cfef83 __CFRunLoopRun + 979
16 CoreFoundation 0x00cfe840 CFRunLoopRunSpecific + 208
17 CoreFoundation 0x00cfe761 CFRunLoopRunInMode + 97
18 GraphicsServices 0x00ff81c4 GSEventRunModal + 217
19 GraphicsServices 0x00ff8289 GSEventRun + 115
20 UIKit 0x00020c93 UIApplicationMain + 1160
21 HelloWorld2 0x00002019 main + 121
22 HelloWorld2 0x00001f95 start + 53
)
terminate called throwing an exceptionsharedlibrary apply-load-rules all
Current language: auto; currently objective-c
(gdb)


この原因は、添付したハードコピーの部分です。(都合良く絵文字があったもんだw)
5cfc049c.png


引数ありで一度IBActionに接続してて、
そのあとソースのIBActionだけを削除して、引数無しでIBActionに再度接続してたのです。
この時引数有りの接続が消えてなくて、対応するソースが無い状態でした。
実行時に引数有りIBActionを呼ぼうとして落ちてたと考えられます。

というわけで、の部分の×ボタンを押して引数有りの接続を削除してやると、解決しました。

初心者で俺みたいにハマる人がいたら参考になればと思って書いてますが、
俺の勉強が一向に進まんw