【iOS】NSInvalidArgumentException [NSProxy methodSignatureForSelector:] called!とか言われてしまったので...

公開: 2013-11-10 22:10
更新: 2016-04-29 06:03
家から出ない&誰とも会わないなんて日が最近かなり多くなってきました。
結果独り言が半端ないです。でもこれって進化の前触れなんだと思っています。

さて、先日iPhoneアプリをごそごそしていたらiOS5で

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSProxy methodSignatureForSelector:] called!'
などと怒られてしまいました。
ええ、逆ギレしてやりましたよ。

NSDocumentControllerがdismissしたあとに発生するようでしたが
何が悪いのか原因がさっぱりぱりぱりでしたので

とりあえず、
methodSignatureForSelectorがない扱いになってるのを
なってない扱いにすればいいんでしょ?え?そうなんでしょ?え?


と投げやりな気持ちで次のようにオーバライドを実装

#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000
@interface NSProxy(iOS5)
+(NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector;
@end
@implementation NSProxy(iOS5)
+(NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {
        return [MyClass instanceMethodSignatureForSelector:aSelector];
}
@end
#endif
すると解決。
その他の動作に影響もなしでした。
(*MyClassにはエラーが出てるとこのクラスでも入れればいいんじゃないかな。そもそもNSProxyってなんだろうね♪


めでたしめでたし♪

この記事をシェア
この記事にコメントする
書き込む
あっきぃ(@appstars_aki)
Web、iOSなフリーランサーです。好きなものはお寿司です。でもお寿司は高いので普段は雑草とか拾ったドングリを食べています。お仕事や意味もなく毎月お小遣いをくれる人を探してます。

お仕事の依頼や自分で作ったアプリのレビューを希望しちゃう方はaki@appstars.jpまでご連絡ください。