2010-06-01 37 views
45

Tôi đã tự hỏi nếu tôi có thể tạo ra một đối tượng của một số lớp nếu tôi có tên của lớp trong một NSString. Tôi biết điều này là có thể bằng các ngôn ngữ khác như ActionScript, C# và PHP ...Tạo đối tượng từ NSString của tên lớp trong Objective-C

Something như thế này:

NSString *className = @"AwesomeViewController"; 
UIViewController *object = [[className alloc] initWithNibName:className bundle:nil]; 

Trả lời

104

Lớp học là đối tượng hạng nhất trong Objective-C quá. Bạn có thể lấy đối tượng lớp từ một NSString với NSClassFromString function.

[[NSClassFromString(className) alloc] init...] 
+0

Làm việc như một nét duyên dáng :) –

+28

và cách khác là: NSLog (@ "% @", NSStringFromClass ([obj class])); – neoneye

+0

Có phản ứng yếu không? – zszen

Các vấn đề liên quan