49 lines
1.4 KiB
Objective-C
49 lines
1.4 KiB
Objective-C
//
|
||
// MJFoundation.m
|
||
// MJExtensionExample
|
||
//
|
||
// Created by MJ Lee on 14/7/16.
|
||
// Copyright (c) 2014年 小码哥. All rights reserved.
|
||
//
|
||
|
||
#import "MJFoundation.h"
|
||
#import "MJExtensionConst.h"
|
||
#import <CoreData/CoreData.h>
|
||
|
||
static NSSet *foundationClasses_;
|
||
|
||
@implementation MJFoundation
|
||
|
||
+ (NSSet *)foundationClasses
|
||
{
|
||
if (foundationClasses_ == nil) {
|
||
// 集合中没有NSObject,因为几乎所有的类都是继承自NSObject,具体是不是NSObject需要特殊判断
|
||
foundationClasses_ = [NSSet setWithObjects:
|
||
[NSURL class],
|
||
[NSDate class],
|
||
[NSValue class],
|
||
[NSData class],
|
||
[NSError class],
|
||
[NSArray class],
|
||
[NSDictionary class],
|
||
[NSString class],
|
||
[NSAttributedString class], nil];
|
||
}
|
||
return foundationClasses_;
|
||
}
|
||
|
||
+ (BOOL)isClassFromFoundation:(Class)c
|
||
{
|
||
if (c == [NSObject class] || c == [NSManagedObject class]) return YES;
|
||
|
||
__block BOOL result = NO;
|
||
[[self foundationClasses] enumerateObjectsUsingBlock:^(Class foundationClass, BOOL *stop) {
|
||
if ([c isSubclassOfClass:foundationClass]) {
|
||
result = YES;
|
||
*stop = YES;
|
||
}
|
||
}];
|
||
return result;
|
||
}
|
||
@end
|