Ios 如何判断一个类是否为系统';s或定制';s
各位! 如何判断一个类是系统类还是自定义类 自定义的类也是从NSObject继承的 如何区分 谢谢,谢谢 补充,像这样:Ios 如何判断一个类是否为系统';s或定制';s,ios,objective-c,Ios,Objective C,各位! 如何判断一个类是系统类还是自定义类 自定义的类也是从NSObject继承的 如何区分 谢谢,谢谢 补充,像这样: - (void)aaaa:(Class)aCustomClass { id instance = [[aCustomClass alloc] init]; NSArray * array = GET_A_CLASS_ALL_PROPERTY(aCustomClass); //it is a NSString array. for (NSString
- (void)aaaa:(Class)aCustomClass
{
id instance = [[aCustomClass alloc] init];
NSArray * array = GET_A_CLASS_ALL_PROPERTY(aCustomClass); //it is a NSString array.
for (NSString * property in array)
{
Class classOfTheProperty = GET_THE_PROPERTY_CLASS(property); //the property's Class.
if ([classOfTheProperty isKindOfClass:NSString.class])
{
[instance setObject:@"1234" forKey:property];
}
else if (IS_CUSTOM_CLASS) //CUSTOM_CLASS maybe has less one hundred.
{
//Continue inner.
[self aaaa:classOfTheProperty];
}
else if (IS_SYSTEM_CLASS) //SYSTEM_CLASS definite has more than hundreds.
{
//Do Nothing.
}
}
}
您可以通过创建类的obj并使用方法检查它来检查类
if ([element isKindOfClass:[customClassName class]]) //check wether object is of custom class
{
// Custom Class
}
else if ([element isKindOfClass:[systemClassName class]])
// System Class
}
您可以检查类是否是从应用程序的主捆绑包而不是从框架加载的:
Class c = ...
NSBundle *b = [NSBundle bundleForClass:c];
if (b == [NSBundle mainBundle]) {
// Custom class ...
}
你想干什么?你说的“制度”或“习俗”是什么意思?这里没有严格的规定,特别是因为类是在运行时创建的。我想他指的是如何判断一个类是否包含在苹果和第三方提供的框架中?如果是custom的类,我必须枚举它的属性,并映射到NSDictionary,则系统类不是。自定义类可能有其他自定义类。这应该用于数据模型层,如ORM。Json字符串转换为自定义实体。但是我现在不知道这个实体,以后也不应该知道,因为我开发了供应框架。也许您希望列举的类都应该符合一些协议,将其标记为您的实体之一。协议不需要任何方法或属性。用它作记号笔。不用了,谢谢。我想判断类,而不是实例,systemName有数百个,而“else if”必须是数百个。宾果,非常感谢,我只想要这个!