2010-01-05 33 views
5

Tôi có thể biết cách tự động khởi tạo một lớp trong Objective-C không?Làm thế nào để tự động khởi tạo một lớp trong Objective-C

+5

câu trả lời của Alex là đúng, nhưng đối với tránh mọi nghi ngờ, câu hỏi của bạn không hoàn toàn đúng. Bạn không khởi tạo một lớp. Bạn khởi tạo một đối tượng *. An * object * là một * instance * của một * class *. – Graza

+0

Ya tôi đồng ý với bạn.Can u cho tôi biết làm thế nào để nhanh chóng một đối tượng của lớp khác/mô-đun? – suse

Trả lời

11
MyClass *myClass = [[MyClass alloc] init]; 
OtherClass *otherClass = [[OtherClass alloc] init]; 
+0

Cảm ơn bạn đã trả lời. Tôi cũng muốn biết làm thế nào để khởi tạo một đối tượng của lớp khác/mô-đun? – suse

+0

Tôi muốn nói rằng lớp khác là một dự án khác và không phải là tên của lớp .. Sau đó cú pháp là gì? – suse

+1

Tôi không hiểu ý bạn là gì. Tôi không biết làm thế nào để khởi tạo một dự án. –

12

Trên iPhone, nếu bạn muốn tạo một thể hiện của một lớp cho tên lớp, bạn có thể sử dụng hàm runtime objc_lookUpClass.

Ví dụ, nếu tôi có một BaseHandler lớp cơ sở và muốn tạo một đối tượng của lớp con ngay tại thời gian chạy (cứng mã hoá như myhandler trong ví dụ này):

#import <objc/objc.h> 
[...] 
NSString *handlerClassName = @"MyHandler" 
id handlerClass = objc_lookUpClass([handlerClassName 
      cStringUsingEncoding:[NSString defaultCStringEncoding]]); 
BaseHandler *handler = (BaseHandler *) [[handlerClass alloc] init]; 
Các vấn đề liên quan