Skip to content

Commit b81b248

Browse files
MJ LeeMJ Lee
MJ Lee
authored and
MJ Lee
committed
Fix NS Bug
Fix NS Bug
1 parent 4e1ebd7 commit b81b248

File tree

6 files changed

+49
-2
lines changed

6 files changed

+49
-2
lines changed

MJExtensionExample/MJExtensionExample.xcodeproj/project.pbxproj

+7
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
2D9CAF5B192FA60E0011F500 /* Status.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D9CAF4D192FA60E0011F500 /* Status.m */; };
2323
2D9CAF5C192FA60E0011F500 /* StatusResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D9CAF4F192FA60E0011F500 /* StatusResult.m */; };
2424
2D9CAF5D192FA60E0011F500 /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D9CAF51192FA60E0011F500 /* User.m */; };
25+
2DA30C251976A88600287282 /* MJFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DA30C241976A88600287282 /* MJFoundation.m */; };
2526
/* End PBXBuildFile section */
2627

2728
/* Begin PBXCopyFilesBuildPhase section */
@@ -68,6 +69,8 @@
6869
2D9CAF4F192FA60E0011F500 /* StatusResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StatusResult.m; sourceTree = "<group>"; };
6970
2D9CAF50192FA60E0011F500 /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
7071
2D9CAF51192FA60E0011F500 /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
72+
2DA30C231976A88600287282 /* MJFoundation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJFoundation.h; sourceTree = "<group>"; };
73+
2DA30C241976A88600287282 /* MJFoundation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJFoundation.m; sourceTree = "<group>"; };
7174
/* End PBXFileReference section */
7275

7376
/* Begin PBXFrameworksBuildPhase section */
@@ -154,6 +157,8 @@
154157
2D9CAF49192FA60E0011F500 /* NSObject+MJKeyValue.m */,
155158
2D9CAF4A192FA60E0011F500 /* NSObject+MJMember.h */,
156159
2D9CAF4B192FA60E0011F500 /* NSObject+MJMember.m */,
160+
2DA30C231976A88600287282 /* MJFoundation.h */,
161+
2DA30C241976A88600287282 /* MJFoundation.m */,
157162
);
158163
path = MJExtension;
159164
sourceTree = "<group>";
@@ -210,6 +215,7 @@
210215
buildActionMask = 2147483647;
211216
files = (
212217
2D9CAF5D192FA60E0011F500 /* User.m in Sources */,
218+
2DA30C251976A88600287282 /* MJFoundation.m in Sources */,
213219
2D9CAF57192FA60E0011F500 /* MJTypeEncoding.m in Sources */,
214220
2D9CAF54192FA60E0011F500 /* MJMember.m in Sources */,
215221
2D9CAF5B192FA60E0011F500 /* Status.m in Sources */,
@@ -335,6 +341,7 @@
335341
2D9CAF37192FA6020011F500 /* Release */,
336342
);
337343
defaultConfigurationIsVisible = 0;
344+
defaultConfigurationName = Release;
338345
};
339346
/* End XCConfigurationList section */
340347
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// MJFoundation.h
3+
// MJExtensionExample
4+
//
5+
// Created by MJ Lee on 14/7/16.
6+
// Copyright (c) 2014年 itcast. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
11+
@interface MJFoundation : NSObject
12+
+ (BOOL)isClassFromFoundation:(Class)c;
13+
@end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//
2+
// MJFoundation.m
3+
// MJExtensionExample
4+
//
5+
// Created by MJ Lee on 14/7/16.
6+
// Copyright (c) 2014年 itcast. All rights reserved.
7+
//
8+
9+
#import "MJFoundation.h"
10+
static NSArray *_foundationClasses;
11+
12+
@implementation MJFoundation
13+
14+
+ (void)initialize
15+
{
16+
_foundationClasses = @[@"NSArray",@"NSAutoreleasePool",@"NSBundle",@"NSByteOrder",@"NSCalendar",@"NSCharacterSet",@"NSCoder",@"NSData",@"NSDate",@"NSDateFormatter",@"NSDecimal",@"NSDecimalNumber",@"NSDictionary",@"NSEnumerator",@"NSError",@"NSException",@"NSFileHandle",@"NSFileManager",@"NSFormatter",@"NSHashTable",@"NSHTTPCookie",@"NSHTTPCookieStorage",@"NSIndexPath",@"NSIndexSet",@"NSInvocation",@"NSJSONSerialization",@"NSKeyValueCoding",@"NSKeyValueObserving",@"NSKeyedArchiver",@"NSLocale",@"NSLock",@"NSMapTable",@"NSMethodSignature",@"NSNotification",@"NSNotificationQueue",@"NSNull",@"NSNumberFormatter",@"NSObject",@"NSOperation",@"NSOrderedSet",@"NSOrthography",@"NSPathUtilities",@"NSPointerArray",@"NSPointerFunctions",@"NSPort",@"NSProcessInfo",@"NSPropertyList",@"NSProxy",@"NSRange",@"NSRegularExpression",@"NSRunLoop",@"NSScanner",@"NSSet",@"NSSortDescriptor",@"NSStream",@"NSString",@"NSTextCheckingResult",@"NSThread",@"NSTimeZone",@"NSTimer",@"NSURL",@"NSURLAuthenticationChallenge",@"NSURLCache",@"NSURLConnection",@"NSURLCredential",@"NSURLCredentialStorage",@"NSURLError",@"NSURLProtectionSpace",@"NSURLProtocol",@"NSURLRequest",@"NSURLResponse",@"NSUserDefaults",@"NSValue",@"NSValueTransformer",@"NSXMLParser",@"NSZone"];
17+
}
18+
19+
+ (BOOL)isClassFromFoundation:(Class)c
20+
{
21+
return [_foundationClasses containsObject:NSStringFromClass(c)];
22+
}
23+
@end

MJExtensionExample/MJExtensionExample/MJExtension/MJMember.m

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@
88

99
#import "MJMember.h"
1010
#import "MJExtension.h"
11+
#import "MJFoundation.h"
1112

1213
@implementation MJMember
14+
15+
1316
/**
1417
* 初始化
1518
*
@@ -29,7 +32,7 @@ - (void)setSrcClass:(Class)srcClass
2932
{
3033
_srcClass = srcClass;
3134

32-
_srcClassFromFoundation = [NSStringFromClass(srcClass) hasPrefix:@"NS"];
35+
_srcClassFromFoundation = [MJFoundation isClassFromFoundation:srcClass];
3336
}
3437

3538
MJLogAllIvrs

MJExtensionExample/MJExtensionExample/MJExtension/MJType.m

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#import "MJType.h"
1010
#import "MJExtension.h"
11+
#import "MJFoundation.h"
1112

1213
@implementation MJType
1314

@@ -34,7 +35,7 @@ - (void)setCode:(NSString *)code
3435
_code = [_code substringToIndex:_code.length - 1];
3536
_typeClass = NSClassFromString(_code);
3637

37-
_fromFoundation = [_code hasPrefix:@"NS"];
38+
_fromFoundation = [MJFoundation isClassFromFoundation:_typeClass];
3839
}
3940
}
4041

0 commit comments

Comments
 (0)