Tôi muốn có được tất cả các lớp học có nguồn gốc (NSString, NSNumber, int, float, NSSet, NSDictionary) mà tôi đã nạp vào dự án iOS của tôi ..Nhận Danh sách tất cả các lớp học có nguồn gốc
tức là, nếu tôi đã tạo một lớp tùy chỉnh có tên là "TestClass" Tôi không muốn nó được liệt kê ...
Tôi đã có mã nhưng nó trả về tên của tất cả các lớp được nạp bất kỳ cách nào tôi có thể sửa đổi mã để giới hạn danh sách thành chỉ lớp Gốc ?
#import <objc/runtime.h>
#import <dlfcn.h>
#import <mach-o/ldsyms.h>
unsigned int count;
const char **classes;
Dl_info info;
dladdr(&_mh_execute_header, &info);
classes = objc_copyClassNamesForImage(info.dli_fname, &count);
for (int i = 0; i < count; i++) {
NSLog(@"Class name: %s", classes[i]);
Class class = NSClassFromString ([NSString stringWithCString:classes[i] encoding:NSUTF8StringEncoding]);
// Do something with class
}
int, float không phải là lớp học. –
@MartinR nhưng điều đó cũng sẽ được đưa vào danh sách trong trường hợp trên !! – Raon
Nếu tôi chạy mã của bạn, tôi nhận được * chỉ * các lớp được xác định trong ứng dụng (AppDelegate, ViewController). Bạn có muốn tất cả các lớp được định nghĩa trong bất kỳ khuôn khổ nào (Foundation, CoreFoundation, UIKit, WebKit, QuartzCore, ...) hay ý bạn là gì bởi "lớp gốc"? –