2010年10月25日 星期一

Objective-C : Allocate Object by String

假設我們現在有定義好的Segment.h, Segment.m Segment.xib,三個檔案存在bundle裡。其中Segment是UIViewController的子類別所以一般的情況下我們是這樣產生物件的
Segment * myViewCon = [[Segment alloc] initWithNibName:@"Segment" bundle:nil];

但在Objective-C下有一個很有趣的方法可以產生物件。利用NSClassFromString
寫法如下
-(id) createViewController:(NSString *) className{
    NSString* theClassName = className;
    Class theClass = NSClassFromString(theClassName);
    NSObject* viewController = [[theClass performSelector:@selector(alloc)] initWithNibName:className bundle:nil];
    [viewController autorelease];
    return viewController;
}

試試看,很好玩地~~~

沒有留言:

張貼留言