この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
たとえば、BOOL型を渡したい時、
[bash language=”gutter=0″]
[self performSelector:@selector(foo:) withObject:YES afterDelay:0.1f];
[/bash]
このように直接指定してしまうと、
Implicit conversion of ‘BOOL’ (aka ‘signed char’) to ‘id’ is disallowed with ARC
怒られます。オブジェクト型(id)のみ受け付ける仕様のためです。このような場合はNSNumberでラップすることで渡すことができます。
[bash language=”gutter=0″]
[self performSelector:@selector(foo:) withObject:[NSNumber numberWithBool:YES] afterDelay:0.5f];
[/bash]
これでOKです。BOOLの他にも、int、doubleなどのプリミティブ型はNSNumberでラップする必要があります。