次の結果を取得する方法はありますか:
NSObject *a = [[NSObject alloc] init];
[a class];
インスタンス化せずに?Classオブジェクトを引数として関数に渡し、それをチェックしたいと思います。このような:
- (void) pushControllerOfClass: (Class) aClass
{
if([aClass isSubclassOfClass: *what should I write here?*]) {
...
}
}
直感的に、私は書いてみました
if([aClass isSubclassOfClass: UIViewController]) {
しかし、うまくいきません。今後の対応はthxでお願いします。
更新: そのような関数は ObjectiveC では悪いと見なされますか? Nahavandipoor の本iOS 5 Programming Cookbookのコードをリファクタリングしました。それはそのようなものでした:
- (void) pushSecondController{
SecondViewController *secondController = [[SecondViewController alloc]
initWithNibName:nil
bundle:NULL];
[self.navigationController pushViewController:secondController animated:YES];
}
私にとっては、これは一種の悪い機能です。必要なときにパラメーター化されていません。