From 411d0da04d3110b044d34df8c91c7ff8cd98e3ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A1=BE=E6=B5=B7=E5=86=9B?= Date: Wed, 16 Oct 2019 18:36:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20synthesize=20getter=20sett?= =?UTF-8?q?er=20=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NNMacros/NNMacros.xcodeproj/project.pbxproj | 12 - NNMacros/NNMacros/NNMacros.h | 2 - NNMacros/NNMacros/NNMacrosAssociatedGetter.h | 11 +- NNMacros/NNMacros/NNMacrosAssociatedKey.h | 19 -- NNMacros/NNMacros/NNMacrosAssociatedSetter.h | 63 +++- .../NNMacros/NNMacrosAssociatedSynthesize.h | 9 +- .../NSObject+NNMacrosAssociatedSynthesize.h | 13 - .../NSObject+NNMacrosAssociatedSynthesize.m | 129 ------- .../Demo/NNMacrosSynthesizeDemo.m | 9 +- Pods/Pods.xcodeproj/project.pbxproj | 318 +++++++++--------- .../NNMacros/NNMacros-umbrella.h | 2 - 11 files changed, 219 insertions(+), 368 deletions(-) delete mode 100644 NNMacros/NNMacros/NNMacrosAssociatedKey.h delete mode 100644 NNMacros/NNMacros/NSObject+NNMacrosAssociatedSynthesize.h delete mode 100644 NNMacros/NNMacros/NSObject+NNMacrosAssociatedSynthesize.m diff --git a/NNMacros/NNMacros.xcodeproj/project.pbxproj b/NNMacros/NNMacros.xcodeproj/project.pbxproj index f7fe118..4d63808 100644 --- a/NNMacros/NNMacros.xcodeproj/project.pbxproj +++ b/NNMacros/NNMacros.xcodeproj/project.pbxproj @@ -20,9 +20,6 @@ 670F8DBB20C121B4004CB3E9 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 670F8DAF20C121B4004CB3E9 /* metamacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; 67AA435A2277F9B000FEE272 /* NNMacrosCocoapodsFix.h in Headers */ = {isa = PBXBuildFile; fileRef = 67AA43582277F9B000FEE272 /* NNMacrosCocoapodsFix.h */; }; 67AA435B2277F9B000FEE272 /* NNMacrosCocoapodsFix.m in Sources */ = {isa = PBXBuildFile; fileRef = 67AA43592277F9B000FEE272 /* NNMacrosCocoapodsFix.m */; }; - 7A4833302356B0B000ACE8E1 /* NSObject+NNMacrosAssociatedSynthesize.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A48332E2356B0B000ACE8E1 /* NSObject+NNMacrosAssociatedSynthesize.h */; }; - 7A4833312356B0B000ACE8E1 /* NSObject+NNMacrosAssociatedSynthesize.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A48332F2356B0B000ACE8E1 /* NSObject+NNMacrosAssociatedSynthesize.m */; }; - 7A48335E2356DCE500ACE8E1 /* NNMacrosAssociatedKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A4833322356BB6400ACE8E1 /* NNMacrosAssociatedKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7A48335F2356DCE500ACE8E1 /* NNMacrosAssociatedGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A48332C2356B06D00ACE8E1 /* NNMacrosAssociatedGetter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7A4833602356DCE500ACE8E1 /* NNMacrosAssociatedSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A48332D2356B07900ACE8E1 /* NNMacrosAssociatedSetter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7A4833612356DCE500ACE8E1 /* NNMacrosAssociatedSynthesize.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A48332B2356B04500ACE8E1 /* NNMacrosAssociatedSynthesize.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -59,9 +56,6 @@ 7A48332B2356B04500ACE8E1 /* NNMacrosAssociatedSynthesize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NNMacrosAssociatedSynthesize.h; sourceTree = ""; }; 7A48332C2356B06D00ACE8E1 /* NNMacrosAssociatedGetter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NNMacrosAssociatedGetter.h; sourceTree = ""; }; 7A48332D2356B07900ACE8E1 /* NNMacrosAssociatedSetter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NNMacrosAssociatedSetter.h; sourceTree = ""; }; - 7A48332E2356B0B000ACE8E1 /* NSObject+NNMacrosAssociatedSynthesize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSObject+NNMacrosAssociatedSynthesize.h"; sourceTree = ""; }; - 7A48332F2356B0B000ACE8E1 /* NSObject+NNMacrosAssociatedSynthesize.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSObject+NNMacrosAssociatedSynthesize.m"; sourceTree = ""; }; - 7A4833322356BB6400ACE8E1 /* NNMacrosAssociatedKey.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NNMacrosAssociatedKey.h; sourceTree = ""; }; 7AD9042B233DCCF100A4ABF8 /* NNMacrosSandbox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NNMacrosSandbox.h; sourceTree = ""; }; /* End PBXFileReference section */ @@ -107,12 +101,9 @@ children = ( 670F8D8C20C120FA004CB3E9 /* NNMacros.h */, 670F8DA520C121B3004CB3E9 /* NNMacrosApp.h */, - 7A4833322356BB6400ACE8E1 /* NNMacrosAssociatedKey.h */, 7A48332C2356B06D00ACE8E1 /* NNMacrosAssociatedGetter.h */, 7A48332D2356B07900ACE8E1 /* NNMacrosAssociatedSetter.h */, 7A48332B2356B04500ACE8E1 /* NNMacrosAssociatedSynthesize.h */, - 7A48332E2356B0B000ACE8E1 /* NSObject+NNMacrosAssociatedSynthesize.h */, - 7A48332F2356B0B000ACE8E1 /* NSObject+NNMacrosAssociatedSynthesize.m */, 670F8DA920C121B4004CB3E9 /* NNMacrosLazyGetter.h */, 670F8DA420C121B3004CB3E9 /* NNMacrosDevice.h */, 670F8DAA20C121B4004CB3E9 /* NNMacrosColor.h */, @@ -167,7 +158,6 @@ 670F8DB720C121B4004CB3E9 /* NNMacrosColor.h in Headers */, 670F8DB620C121B4004CB3E9 /* NNMacrosLazyGetter.h in Headers */, 670F8D9A20C120FA004CB3E9 /* NNMacros.h in Headers */, - 7A48335E2356DCE500ACE8E1 /* NNMacrosAssociatedKey.h in Headers */, 7A48335F2356DCE500ACE8E1 /* NNMacrosAssociatedGetter.h in Headers */, 7A4833602356DCE500ACE8E1 /* NNMacrosAssociatedSetter.h in Headers */, 7A4833612356DCE500ACE8E1 /* NNMacrosAssociatedSynthesize.h in Headers */, @@ -175,7 +165,6 @@ 7A4833622356DD0E00ACE8E1 /* NNMacrosSandbox.h in Headers */, 670F8DB820C121B4004CB3E9 /* NNMacrosScreen.h in Headers */, 67AA435A2277F9B000FEE272 /* NNMacrosCocoapodsFix.h in Headers */, - 7A4833302356B0B000ACE8E1 /* NSObject+NNMacrosAssociatedSynthesize.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -276,7 +265,6 @@ buildActionMask = 2147483647; files = ( 67AA435B2277F9B000FEE272 /* NNMacrosCocoapodsFix.m in Sources */, - 7A4833312356B0B000ACE8E1 /* NSObject+NNMacrosAssociatedSynthesize.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/NNMacros/NNMacros/NNMacros.h b/NNMacros/NNMacros/NNMacros.h index 04d3a44..1b1d54a 100644 --- a/NNMacros/NNMacros/NNMacros.h +++ b/NNMacros/NNMacros/NNMacros.h @@ -18,7 +18,6 @@ FOUNDATION_EXPORT const unsigned char NNMacrosVersionString[]; #if __has_include() #import -#import #import #import #import @@ -31,7 +30,6 @@ FOUNDATION_EXPORT const unsigned char NNMacrosVersionString[]; #import #else #import "NNMacrosLazyGetter.h" -#import "NNMacrosAssociatedKey.h" #import "NNMacrosAssociatedGetter.h" #import "NNMacrosAssociatedSetter.h" #import "NNMacrosAssociatedSynthesize.h" diff --git a/NNMacros/NNMacros/NNMacrosAssociatedGetter.h b/NNMacros/NNMacros/NNMacrosAssociatedGetter.h index fcc1a90..f8d3161 100644 --- a/NNMacros/NNMacros/NNMacrosAssociatedGetter.h +++ b/NNMacros/NNMacros/NNMacrosAssociatedGetter.h @@ -12,7 +12,6 @@ #import #import #include "metamacros.h" -#include "NNMacrosAssociatedKey.h" /*************************************************** associated getter @@ -21,7 +20,7 @@ atomic_type: atomic, nonatomic arc_type: assign, strong, copy data_type: 属性类型 - param0: 属性名称 + param0: getter方法名 param1: hook_after_load param2: hook_befor_ret */ @@ -87,7 +86,7 @@ static inline char nn_associated_getter_ret_encoding(Class cls, SEL sel) { \ - (data_type)metamacro_at(0, __VA_ARGS__) \ {\ - const char *__key = metamacro_stringify(metamacro_concat(nn_associated_store_key, metamacro_at(0, __VA_ARGS__))); \ + SEL __key = _cmd; \ id __obj = objc_getAssociatedObject(self, __key); \ metamacro_at(1, __VA_ARGS__) \ data_type __ivar = __obj; \ @@ -101,10 +100,10 @@ static inline char nn_associated_getter_ret_encoding(Class cls, SEL sel) { \ - (data_type)metamacro_at(0, __VA_ARGS__) \ {\ - const char *__key = metamacro_stringify(metamacro_concat(nn_associated_store_key, metamacro_at(0, __VA_ARGS__))); \ + SEL __key = _cmd; \ NSMapTable *__table = objc_getAssociatedObject(self, __key); \ metamacro_at(1, __VA_ARGS__) \ - id __obj = [__table objectForKey:@(__key)]; \ + id __obj = [__table objectForKey:NSStringFromSelector(__key)]; \ data_type __ivar = __obj; \ metamacro_at(2, __VA_ARGS__) \ return __ivar; \ @@ -116,7 +115,7 @@ static inline char nn_associated_getter_ret_encoding(Class cls, SEL sel) { \ - (data_type)metamacro_at(0, __VA_ARGS__) \ {\ - const char *__key = metamacro_stringify(metamacro_concat(nn_associated_store_key, metamacro_at(0, __VA_ARGS__))); \ + SEL __key = _cmd; \ id __obj = objc_getAssociatedObject(self, __key); \ metamacro_at(1, __VA_ARGS__) \ char __encoding = nn_associated_getter_encoding([self class], _cmd); \ diff --git a/NNMacros/NNMacros/NNMacrosAssociatedKey.h b/NNMacros/NNMacros/NNMacrosAssociatedKey.h deleted file mode 100644 index 3fc0d65..0000000 --- a/NNMacros/NNMacros/NNMacrosAssociatedKey.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// NNMacrosAssociatedKey.h -// NNMacros -// -// Created by 顾海军 on 2019/10/16. -// Copyright © 2019 GuHaijun. All rights reserved. -// - -#ifndef NNMacrosAssociatedKey_h -#define NNMacrosAssociatedKey_h - -#include "metamacros.h" - -#define nn_associated_prefix __nn_associated_ -#define nn_associated_setter_prefix metamacro_concat(__nn_associated_, set_) -#define nn_associated_store_key nn_associated_prefix - - -#endif /* NNMacrosAssociatedKey_h */ diff --git a/NNMacros/NNMacros/NNMacrosAssociatedSetter.h b/NNMacros/NNMacros/NNMacrosAssociatedSetter.h index 3727991..d2e2396 100644 --- a/NNMacros/NNMacros/NNMacrosAssociatedSetter.h +++ b/NNMacros/NNMacros/NNMacrosAssociatedSetter.h @@ -12,7 +12,6 @@ #import #import #include "metamacros.h" -#include "NNMacrosAssociatedKey.h" /*************************************************** associated setter @@ -21,14 +20,13 @@ atomic_type: atomic, nonatomic arc_type: assign, strong, copy data_type: 属性类型 - param0: 属性名称 + param0: setter方法名 param1: hook_begin_set param2: hook_befor_store */ #ifndef nn_associated_setter - #pragma mark - setter #define nn_associated_setter(atomic_type, arc_type, data_type, ...) \ @@ -38,6 +36,7 @@ #pragma mark - setter tools + /** 获取 setter 方法中 objc_setAssociatedObject 参数 policy @@ -69,6 +68,44 @@ static inline objc_AssociationPolicy nn_associated_setter_store_policy(NSString } } + +/** + 获取 setter 方法中 objc_setAssociatedObject 参数 key + + @discussion 动态添加获取属性的 key 值为 getter 方法的 sel ,该函数通过截取 setter 方法的 sel ,获取 key 值 + @param cls 类名 + @param sel setter 方法的 sel + @return setter 方法中 objc_setAssociatedObject 参数 key + */ +static inline SEL nn_associated_setter_store_key(Class cls, SEL sel) { + SEL ret = nil; + const char *selName = sel_getName(sel); + const char *prefix = "set"; + // 1. 判断 sel 是否是以 "set" 开头 + if (0 != memcmp(selName, prefix, strlen(prefix))) { return ret; } + // 2. 判断 sel 是否是以 ":" 结尾 + if (':' != selName[strlen(selName) - 1]) { return ret; } + // 3. 拷贝 "set" 之后的字符串,包括 "\0"。 + size_t keyNameSize = (strlen(selName) + 1) - strlen(prefix); + unsigned char *keyName = (unsigned char *)calloc(keyNameSize, sizeof(unsigned char)); + memcpy(keyName, (selName + strlen(prefix)), keyNameSize); + // 4. 如果 "set" 是字母,那么转换为小写。如:"setUserName:",将 "UserName:" 转为 "userName:" 。 + if (keyName[0] > 'A' && keyName[0] < 'Z') { keyName[0] += ('a' - 'A'); } + // 5. 去掉 sel 结尾的 ":" ,使用 "\0" 替换。 + keyName[strlen((const char *)keyName) - 1] = '\0'; + // 6. 避免仅有 setter 方法的情况,通过 method 获取 setter 方法 sel 。(实际应用中通常不会出现) + SEL keySel = NSSelectorFromString([NSString stringWithUTF8String:(const char *)keyName]); + Method method = class_getInstanceMethod(cls, keySel); + if (method == nil) { goto end; } + ret = method_getName(method) ; +end: + free(keyName); + return ret; +} + +#define nn_associated_setter_key(clazz, setter) \ + nn_associated_setter_store_key(clazz, setter)\ + #define nn_associated_setter_policy(arc_type, atomic_type) \ nn_associated_setter_store_policy(NN_arg2String(arc_type), NN_arg2String(atomic_type)) \ @@ -80,10 +117,10 @@ static inline objc_AssociationPolicy nn_associated_setter_store_policy(NSString #pragma mark - setter strong #define nn_associated_setter_strong(atomic_type, arc_type, data_type, ...) \ -@dynamic metamacro_at(0, __VA_ARGS__);\ -- (void)metamacro_concat(nn_associated_setter_prefix, metamacro_at(0, __VA_ARGS__)):(data_type)newValue\ +\ +- (void)metamacro_at(0, __VA_ARGS__):(data_type)newValue\ { \ - const char *__key = metamacro_stringify(metamacro_concat(nn_associated_store_key, metamacro_at(0, __VA_ARGS__))); \ + SEL __key = nn_associated_setter_key([self class], _cmd); \ data_type __ivar = newValue; \ metamacro_at(1, __VA_ARGS__) \ id __obj = __ivar; \ @@ -94,14 +131,14 @@ static inline objc_AssociationPolicy nn_associated_setter_store_policy(NSString #pragma mark - setter weak #define nn_associated_setter_weak(atomic_type, arc_type, data_type, ...) \ -@dynamic metamacro_at(0, __VA_ARGS__);\ -- (void)metamacro_concat(nn_associated_setter_prefix, metamacro_at(0, __VA_ARGS__)):(data_type)newValue\ +\ +- (void)metamacro_at(0, __VA_ARGS__):(data_type)newValue\ { \ - const char *__key = metamacro_stringify(metamacro_concat(nn_associated_store_key, metamacro_at(0, __VA_ARGS__))); \ + SEL __key = nn_associated_setter_key([self class], _cmd); \ data_type __ivar = newValue; \ metamacro_at(1, __VA_ARGS__) \ NSMapTable *__obj = [NSMapTable strongToWeakObjectsMapTable]; \ - [__obj setObject:__ivar forKey:@(__key)]; \ + [__obj setObject:__ivar forKey:NSStringFromSelector(__key)]; \ metamacro_at(2, __VA_ARGS__) \ objc_setAssociatedObject(self, __key, __obj, nn_associated_setter_policy(arc_type, atomic_type)); \ } \ @@ -109,10 +146,10 @@ static inline objc_AssociationPolicy nn_associated_setter_store_policy(NSString #pragma mark - setter assign #define nn_associated_setter_assign(atomic_type, arc_type, data_type, ...) \ -@dynamic metamacro_at(0, __VA_ARGS__);\ -- (void)metamacro_concat(nn_associated_setter_prefix, metamacro_at(0, __VA_ARGS__)):(data_type)newValue\ +\ +- (void)metamacro_at(0, __VA_ARGS__):(data_type)newValue\ { \ - const char *__key = metamacro_stringify(metamacro_concat(nn_associated_store_key, metamacro_at(0, __VA_ARGS__))); \ + SEL __key = nn_associated_setter_key([self class], _cmd); \ data_type __ivar = newValue; \ metamacro_at(1, __VA_ARGS__) \ id __obj = @(__ivar); \ diff --git a/NNMacros/NNMacros/NNMacrosAssociatedSynthesize.h b/NNMacros/NNMacros/NNMacrosAssociatedSynthesize.h index e0556ee..24e662c 100644 --- a/NNMacros/NNMacros/NNMacrosAssociatedSynthesize.h +++ b/NNMacros/NNMacros/NNMacrosAssociatedSynthesize.h @@ -20,14 +20,15 @@ atomic_type: atomic, nonatomic arc_type: assign, strong, copy data_type: 属性类型 - property_name: 属性名称 + getter: getter方法名 + setter: setter方法名 */ #ifndef nn_associated_synthesize -#define nn_associated_synthesize(atomic_type, arc_type, data_type, property_name) \ - nn_associated_getter(atomic_type, arc_type, data_type, property_name); \ - nn_associated_setter(atomic_type, arc_type, data_type, property_name); \ +#define nn_associated_synthesize(atomic_type, arc_type, data_type, getter, setter) \ + nn_associated_getter(atomic_type, arc_type, data_type, getter); \ + nn_associated_setter(atomic_type, arc_type, data_type, setter); \ #endif /* nn_associated_synthesize */ diff --git a/NNMacros/NNMacros/NSObject+NNMacrosAssociatedSynthesize.h b/NNMacros/NNMacros/NSObject+NNMacrosAssociatedSynthesize.h deleted file mode 100644 index 9dec05d..0000000 --- a/NNMacros/NNMacros/NSObject+NNMacrosAssociatedSynthesize.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// NSObject+NNMacrosAssociatedSynthesize.h -// NNMacros -// -// Created by 顾海军 on 2019/10/16. -// Copyright © 2019 GuHaijun. All rights reserved. -// - -#import - -@interface NSObject (NNMacrosAssociatedSynthesize) - -@end diff --git a/NNMacros/NNMacros/NSObject+NNMacrosAssociatedSynthesize.m b/NNMacros/NNMacros/NSObject+NNMacrosAssociatedSynthesize.m deleted file mode 100644 index 6be6c86..0000000 --- a/NNMacros/NNMacros/NSObject+NNMacrosAssociatedSynthesize.m +++ /dev/null @@ -1,129 +0,0 @@ -// -// NSObject+NNMacrosAssociatedSynthesize.m -// NNMacros -// -// Created by 顾海军 on 2019/10/16. -// Copyright © 2019 GuHaijun. All rights reserved. -// - -#import "NSObject+NNMacrosAssociatedSynthesize.h" -#import -#include "metamacros.h" -#include "NNMacrosAssociatedKey.h" - -NS_INLINE SEL -nn_macro_realSetterSelector(Class cls, SEL sel) { - - SEL ret = nil; - const char *selName = sel_getName(sel); - const char *prefix = "set"; - // 1. 判断 sel 是否是以 "set" 开头 - if (0 != memcmp(selName, prefix, strlen(prefix))) { return ret; } - // 2. 判断 sel 是否是以 ":" 结尾 - if (':' != selName[strlen(selName) - 1]) { return ret; } - // 3. 拷贝 "set" 之后的字符串,包括 "\0"。 - size_t keyNameSize = (strlen(selName) + 1) - strlen(prefix); - unsigned char *keyName = (unsigned char *)calloc(keyNameSize, sizeof(unsigned char)); - memcpy(keyName, (selName + strlen(prefix)), keyNameSize); - // 4. 如果 "set" 是字母,那么转换为小写。如:"setUserName:",将 "UserName:" 转为 "userName:" 。 - if (keyName[0] > 'A' && keyName[0] < 'Z') { keyName[0] += ('a' - 'A'); } - // 5. 获取 setter 方法 selector - NSString *selectorName = [@(metamacro_stringify(nn_associated_setter_prefix)) stringByAppendingString:[NSString stringWithUTF8String:(const char *)keyName]]; - SEL selector = NSSelectorFromString(selectorName); - // 6. 通过获取 Method ,判断 selector 是否存在。 - Method method = class_getInstanceMethod(cls, selector); - if (method == nil) { goto end; } - ret = method_getName(method) ; -end: - free(keyName); - return ret; -} - -NS_INLINE void -nn_macro_swizzledMark(id self, SEL _cmd) { - NSLog(@"%@ %s methods have been swizzed", self, sel_getName(_cmd)); -} - -NS_INLINE void -nn_macro_swizzleSelector(Class clazz, SEL originalSelector, SEL swizzledSelector) { - - // 防止 swizzle 多次执行 - NSString *swizzedMarkName = [NSString stringWithFormat:@"%@_%@", @"nn_swizzedMark", @(sel_getName(swizzledSelector))]; - SEL swizzedMarkSelector = NSSelectorFromString(swizzedMarkName); - if ([clazz respondsToSelector:swizzedMarkSelector]) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" - [clazz performSelector:swizzedMarkSelector]; -#pragma clang diagnostic pop - return; - } - class_addMethod(clazz, swizzedMarkSelector, (IMP)nn_macro_swizzledMark, "v@:"); - - // swizzle 方法 - Method originalMethod = class_getClassMethod(clazz, originalSelector); - Method swizzedMethod = class_getClassMethod(clazz, swizzledSelector); - - IMP originalImplementation = class_replaceMethod(clazz, method_getName(originalMethod), method_getImplementation(swizzedMethod), method_getTypeEncoding(originalMethod)); - - class_replaceMethod(clazz, method_getName(swizzedMethod), originalImplementation, method_getTypeEncoding(originalMethod)); -} - -NS_INLINE BOOL -nn_macro_forwardInvocation(NSInvocation *anInvocation) { - - SEL selector = nn_macro_realSetterSelector([anInvocation.target class], - anInvocation.selector); - Method swizzedMethod = class_getInstanceMethod([anInvocation.target class], - selector); - class_addMethod([anInvocation.target class], - anInvocation.selector, - method_getImplementation(swizzedMethod), - method_getTypeEncoding(swizzedMethod)); - - // 检查响应 - if (![anInvocation.target respondsToSelector:anInvocation.selector]) { - return false; - } - - // 执行方法 - [anInvocation invoke]; - - return true; -} - -@implementation NSObject (NNMacrosAssociatedSynthesize) - -+(void)load { - - // Hood 原生方法 - nn_macro_swizzleSelector(self, - @selector(forwardInvocation:), - @selector(nn_macro_instance_forwardInvocation:)); - nn_macro_swizzleSelector(self, - @selector(methodSignatureForSelector:), - @selector(nn_macro_methodSignatureForSelector:)); -} - -- (void)nn_macro_instance_forwardInvocation:(NSInvocation *)anInvocation { - - if (nn_macro_forwardInvocation(anInvocation)) { - return; - } - [self nn_macro_instance_forwardInvocation:anInvocation]; -} - -- (NSMethodSignature *)nn_macro_methodSignatureForSelector:(SEL)aSelector { - - NSMethodSignature *methodSignature = nil; - methodSignature = [self nn_macro_methodSignatureForSelector:aSelector]; - if (methodSignature != nil) { - return methodSignature; - } - - SEL selector = nn_macro_realSetterSelector([self class], aSelector); - methodSignature = [self nn_macro_methodSignatureForSelector:selector]; - - return methodSignature; -} - -@end diff --git a/NNMacrosDemo/NNMacrosDemo/Demo/NNMacrosSynthesizeDemo.m b/NNMacrosDemo/NNMacrosDemo/Demo/NNMacrosSynthesizeDemo.m index 62a1061..de7b7b2 100644 --- a/NNMacrosDemo/NNMacrosDemo/Demo/NNMacrosSynthesizeDemo.m +++ b/NNMacrosDemo/NNMacrosDemo/Demo/NNMacrosSynthesizeDemo.m @@ -30,8 +30,11 @@ - (void)dealloc { @implementation NNMacrosSynthesizeDemo (Synthesize) -nn_associated_synthesize(nonatomic, strong, NSString *, string) -nn_associated_synthesize(nonatomic, weak, id, weakId) -nn_associated_synthesize(nonatomic, assign, NSInteger, iValue); +//nn_associated_synthesize(nonatomic, strong, NSString *, string, setString) + +nn_associated_getter(nonatomic, strong, NSString *, string) +nn_associated_setter(nonatomic, strong, NSString *, setString) +nn_associated_synthesize(nonatomic, weak, id, weakId, setWeakId) +nn_associated_synthesize(nonatomic, assign, NSInteger, iValue, setIValue); @end diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 4a7b2cc..25cd90c 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,30 +7,27 @@ objects = { /* Begin PBXBuildFile section */ - 099CD09A8F34E51490AF07DB81D65673 /* NNMacrosAssociatedGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F1F60FC13A0F52FAE246A4A24FD433 /* NNMacrosAssociatedGetter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B6AE6E0DFF444F414DD75D356C33178 /* NNMacrosColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 75365934D2C0102BF79B9223BE916565 /* NNMacrosColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 199B065E75115751430330E55823107E /* NNMacrosSandbox.h in Headers */ = {isa = PBXBuildFile; fileRef = A8741FC943D37C285E9EFFF98E5D4594 /* NNMacrosSandbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A942345F7B4CE0EC22C81B31CAE1833 /* NSObject+NNMacrosAssociatedSynthesize.m in Sources */ = {isa = PBXBuildFile; fileRef = 641DB17F5F54BCAE51FEC7FF6050524E /* NSObject+NNMacrosAssociatedSynthesize.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 47252836AC830052B06ECA5F2D157962 /* NNMacrosAssociatedSynthesize.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF34180898236532FD4459FB33F814B /* NNMacrosAssociatedSynthesize.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C74B7864FDBDD5019E07808E44A4D6F /* NNMacrosCocoapodsFix.m in Sources */ = {isa = PBXBuildFile; fileRef = 246F47CDDB348648546874ACC830736C /* NNMacrosCocoapodsFix.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 1DE7A7FCFBC46DDEC2ED982398EBCDA2 /* NNMacrosApp.h in Headers */ = {isa = PBXBuildFile; fileRef = EA4F66D00C19756C82C3589194872E15 /* NNMacrosApp.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 31D91623F9AFEBFED8DEE0035424B586 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; 47BE76617DBA2A8AE5C0138C36573664 /* Pods-NNMacrosDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F1D8D340185117A1DA7A172C9256D33C /* Pods-NNMacrosDemo-dummy.m */; }; - 4E94F791B16CDD26E70527F56BB8828E /* NNMacrosVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = CDFF36E3E957F69409F6B9CF70B12652 /* NNMacrosVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A0AAB77AD311FBBF91DF9EC5D6AA904 /* NNMacrosCocoapodsFix.h in Headers */ = {isa = PBXBuildFile; fileRef = A43832F13321C48C97EBE54291E2219F /* NNMacrosCocoapodsFix.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C304A5B36A7FCD617F303D160D3E022 /* NNMacrosString.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E3510E965FD0C9E17E9207CEA38B6CF /* NNMacrosString.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69663F3DBE620FD7F79DB7CACB4D517A /* NNMacrosDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 89327FEC1130C9DC8547604ADBF88CED /* NNMacrosDevice.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 760B80A931AD6A96B3A00DF145ED98C8 /* NNMacrosScreen.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E58E879C8DA0898C30C29766212F391 /* NNMacrosScreen.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D992C54025C40A7A142EEE3E951EAC4 /* NNMacros-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DD714C1BB51594465245FD3A4FDA4EC4 /* NNMacros-dummy.m */; }; - 86D4FA065295D69C9BEF07DCB263E72A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - 8AA9FD0CFEBF434CD0955A6AA3AC62C4 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 91CAD2E1D7B0F79322B7771634109D9B /* metamacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4ADADCB30C2057975092A61D48563935 /* NNMacrosAssociatedGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = A63E6AD8829FD1C144EB87B04F4F1343 /* NNMacrosAssociatedGetter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A823A49A80DD710CEB26D74FFB6B8EE /* NNMacrosSandbox.h in Headers */ = {isa = PBXBuildFile; fileRef = 11A8C91768C18926256A76759DA1B310 /* NNMacrosSandbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6F9E06CDA9B254E6BA348C4675B19B69 /* NNMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8168A2FD7F0672CE989D4781C5872C38 /* NNMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8C9076CEF0B66B9597DA716A4D766EDB /* NNMacrosAssociatedSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 732417210FA0FDE021F1B5FB87995BB7 /* NNMacrosAssociatedSetter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8F347C51AE56F25CF3B75DF9CD0F7451 /* NNMacrosAssociatedSynthesize.h in Headers */ = {isa = PBXBuildFile; fileRef = 68632607C872B57F49EA45316D23055D /* NNMacrosAssociatedSynthesize.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8F70993097B5E8D2F4B3E1F50F8271FA /* Pods-NNMacrosDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EB5522056AFADCD02162C1D90B9990EA /* Pods-NNMacrosDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90D3BA86467C275C0A97712B02346269 /* NNMacrosCocoapodsFix.m in Sources */ = {isa = PBXBuildFile; fileRef = CF0AFCDA6D2B80364E9FAC5341C2852F /* NNMacrosCocoapodsFix.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - AF74B73E3243446D1E81D4C1509BD144 /* NNMacrosAssociatedKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ECF3D82493D8DF5D1E27804410512DF /* NNMacrosAssociatedKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2DE3ADCC25C2F8C7618DE390BBAC5EF /* NSObject+NNMacrosAssociatedSynthesize.h in Headers */ = {isa = PBXBuildFile; fileRef = E495F523C9670D9E192845CAC5BCE124 /* NSObject+NNMacrosAssociatedSynthesize.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9686D32F35030BCC7FBD26B64209CFD5 /* NNMacrosLazyGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 32DF905E8B709F2FF65DC90EF899462C /* NNMacrosLazyGetter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 975CE75D0DAA96ED1773F398ED110DB1 /* NNMacros-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E1A5DD1DCAC3343475CC3433E40B801B /* NNMacros-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9CCCB27667DA97521AA7FAEEB4D4274D /* NNMacrosVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = EA19B8008F48AAD094EDCA2A95FBD576 /* NNMacrosVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD9C737F07F0166FBB6E8A321F1111C1 /* NNMacrosDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CB7B11041D725E9CEAD7E474DCECD19 /* NNMacrosDevice.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B01A9F9233F7E1ECE7DFE8FC76CA5A84 /* NNMacros-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D8690DFC4AA93CBBB548D32813CC0704 /* NNMacros-dummy.m */; }; B3E9AFE304B323B42D29FF8324F8D32F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - BC4013F8266BD12DEEC36C0648D25236 /* NNMacrosLazyGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = DFFF00F5BDE3EA682FFAB8CD0000BC65 /* NNMacrosLazyGetter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D26A2ACF43F9070FB4D8DA8BCF177018 /* NNMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = F7AAA7F437C512B51766D08C71E3D21E /* NNMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EDCF48C79790596B025A12D2B7C68297 /* NNMacrosAssociatedSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 395388C9D1F6344D7E75943205277075 /* NNMacrosAssociatedSetter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F05F06930B51A52A93CEAD1B598D752C /* NNMacros-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C738843D7FB74F3D83A9463685C89BDF /* NNMacros-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F656312725A6395F55DAF70B36E4B8AC /* NNMacrosApp.h in Headers */ = {isa = PBXBuildFile; fileRef = 52A4FE00D5919CF265EF2AD671639601 /* NNMacrosApp.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BEDD2407CB966DF45E85E47FD881E20F /* NNMacrosColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 11833B3FE3397FE3C41E25268B82DD5F /* NNMacrosColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D8551C2E3B078DEC5212452ECFB82E78 /* NNMacrosCocoapodsFix.h in Headers */ = {isa = PBXBuildFile; fileRef = E34D736C64096496B727DF539FC7407A /* NNMacrosCocoapodsFix.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1B887B32D265393AAEA9CE5B2AEAEA8 /* NNMacrosString.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE3D8E7CBBA2E88367CE2329AC440D1 /* NNMacrosString.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF6849419A9E75E99BAB8750B4247CE5 /* NNMacrosScreen.h in Headers */ = {isa = PBXBuildFile; fileRef = A470CE63E4935C11A2BEB305C30FB3A9 /* NNMacrosScreen.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1E0F5C635294F4058F4ABE08807BEB4 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 945DF310083DF3BD6EF8757166A7F180 /* metamacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,54 +41,51 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0E58E879C8DA0898C30C29766212F391 /* NNMacrosScreen.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosScreen.h; path = NNMacros/NNMacros/NNMacrosScreen.h; sourceTree = ""; }; - 1C3E42E3A3CF5FBE0C8ABBEC1BFB316B /* NNMacros.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = NNMacros.modulemap; sourceTree = ""; }; + 05BFE7E9CB3307595C267C5078405A66 /* NNMacros-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "NNMacros-Info.plist"; sourceTree = ""; }; + 11833B3FE3397FE3C41E25268B82DD5F /* NNMacrosColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosColor.h; path = NNMacros/NNMacros/NNMacrosColor.h; sourceTree = ""; }; + 11A8C91768C18926256A76759DA1B310 /* NNMacrosSandbox.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosSandbox.h; path = NNMacros/NNMacros/NNMacrosSandbox.h; sourceTree = ""; }; + 1AE3D8E7CBBA2E88367CE2329AC440D1 /* NNMacrosString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosString.h; path = NNMacros/NNMacros/NNMacrosString.h; sourceTree = ""; }; + 246F47CDDB348648546874ACC830736C /* NNMacrosCocoapodsFix.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = NNMacrosCocoapodsFix.m; sourceTree = ""; }; 26DC728F43071E49CDB78801D6BE7FD5 /* NNMacros.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = NNMacros.framework; path = NNMacros.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 29D9E3B093118803A912DDAFD9CE4DA9 /* Pods-NNMacrosDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-NNMacrosDemo.release.xcconfig"; sourceTree = ""; }; + 2CB7B11041D725E9CEAD7E474DCECD19 /* NNMacrosDevice.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosDevice.h; path = NNMacros/NNMacros/NNMacrosDevice.h; sourceTree = ""; }; 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 395388C9D1F6344D7E75943205277075 /* NNMacrosAssociatedSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosAssociatedSetter.h; path = NNMacros/NNMacros/NNMacrosAssociatedSetter.h; sourceTree = ""; }; - 4ECF3D82493D8DF5D1E27804410512DF /* NNMacrosAssociatedKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosAssociatedKey.h; path = NNMacros/NNMacros/NNMacrosAssociatedKey.h; sourceTree = ""; }; - 50670CD3D7448AFAF358420E989BF1F9 /* NNMacros-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NNMacros-prefix.pch"; sourceTree = ""; }; - 52A4FE00D5919CF265EF2AD671639601 /* NNMacrosApp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosApp.h; path = NNMacros/NNMacros/NNMacrosApp.h; sourceTree = ""; }; - 5B95F5F8EF86C37E046740B03EC84BDC /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; - 5E3510E965FD0C9E17E9207CEA38B6CF /* NNMacrosString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosString.h; path = NNMacros/NNMacros/NNMacrosString.h; sourceTree = ""; }; + 32DF905E8B709F2FF65DC90EF899462C /* NNMacrosLazyGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosLazyGetter.h; path = NNMacros/NNMacros/NNMacrosLazyGetter.h; sourceTree = ""; }; + 4A87EF0D48A2AD58DE448CFEFC7D5E4B /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; 60DCD709C249E24211A47670805DF300 /* Pods-NNMacrosDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-NNMacrosDemo-acknowledgements.plist"; sourceTree = ""; }; - 641DB17F5F54BCAE51FEC7FF6050524E /* NSObject+NNMacrosAssociatedSynthesize.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+NNMacrosAssociatedSynthesize.m"; path = "NNMacros/NNMacros/NSObject+NNMacrosAssociatedSynthesize.m"; sourceTree = ""; }; + 68632607C872B57F49EA45316D23055D /* NNMacrosAssociatedSynthesize.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosAssociatedSynthesize.h; path = NNMacros/NNMacros/NNMacrosAssociatedSynthesize.h; sourceTree = ""; }; 71E670FBE00CA5434C41DD9FC4C3FB8F /* Pods-NNMacrosDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-NNMacrosDemo-acknowledgements.markdown"; sourceTree = ""; }; - 75365934D2C0102BF79B9223BE916565 /* NNMacrosColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosColor.h; path = NNMacros/NNMacros/NNMacrosColor.h; sourceTree = ""; }; - 7C1E3979B296673A81D006998C1444A7 /* NNMacros.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = NNMacros.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 84F1F60FC13A0F52FAE246A4A24FD433 /* NNMacrosAssociatedGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosAssociatedGetter.h; path = NNMacros/NNMacros/NNMacrosAssociatedGetter.h; sourceTree = ""; }; - 85ABEAD625EDC54B8901739600C2EA8C /* NNMacros.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NNMacros.xcconfig; sourceTree = ""; }; - 89327FEC1130C9DC8547604ADBF88CED /* NNMacrosDevice.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosDevice.h; path = NNMacros/NNMacros/NNMacrosDevice.h; sourceTree = ""; }; - 91CAD2E1D7B0F79322B7771634109D9B /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = NNMacros/NNMacros/Bases/metamacros.h; sourceTree = ""; }; + 732417210FA0FDE021F1B5FB87995BB7 /* NNMacrosAssociatedSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosAssociatedSetter.h; path = NNMacros/NNMacros/NNMacrosAssociatedSetter.h; sourceTree = ""; }; + 8168A2FD7F0672CE989D4781C5872C38 /* NNMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacros.h; path = NNMacros/NNMacros/NNMacros.h; sourceTree = ""; }; + 945DF310083DF3BD6EF8757166A7F180 /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = NNMacros/NNMacros/Bases/metamacros.h; sourceTree = ""; }; 9785E6A386F283334BAB7612BD6A5EA2 /* Pods_NNMacrosDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_NNMacrosDemo.framework; path = "Pods-NNMacrosDemo.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A54794D46D64EB48680E94AF8C59DB8 /* NNMacros.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = NNMacros.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9FC7D7A8094F1D287D121F1732DE4942 /* Pods-NNMacrosDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-NNMacrosDemo-frameworks.sh"; sourceTree = ""; }; - A43832F13321C48C97EBE54291E2219F /* NNMacrosCocoapodsFix.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = NNMacrosCocoapodsFix.h; sourceTree = ""; }; - A8741FC943D37C285E9EFFF98E5D4594 /* NNMacrosSandbox.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosSandbox.h; path = NNMacros/NNMacros/NNMacrosSandbox.h; sourceTree = ""; }; + A18D01C301572BFD947986169945ECA1 /* NNMacros-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NNMacros-prefix.pch"; sourceTree = ""; }; + A470CE63E4935C11A2BEB305C30FB3A9 /* NNMacrosScreen.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosScreen.h; path = NNMacros/NNMacros/NNMacrosScreen.h; sourceTree = ""; }; + A63E6AD8829FD1C144EB87B04F4F1343 /* NNMacrosAssociatedGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosAssociatedGetter.h; path = NNMacros/NNMacros/NNMacrosAssociatedGetter.h; sourceTree = ""; }; ACE69F5C5E19893513E11C66D017E023 /* Pods-NNMacrosDemo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-NNMacrosDemo-Info.plist"; sourceTree = ""; }; + B194FD57C40284FCCC248BCCBCC05A09 /* NNMacros.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = NNMacros.modulemap; sourceTree = ""; }; B5B4268F0B9448C2095E6973A160FB11 /* Pods-NNMacrosDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-NNMacrosDemo.modulemap"; sourceTree = ""; }; - C738843D7FB74F3D83A9463685C89BDF /* NNMacros-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NNMacros-umbrella.h"; sourceTree = ""; }; - CDFF36E3E957F69409F6B9CF70B12652 /* NNMacrosVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosVersion.h; path = NNMacros/NNMacros/NNMacrosVersion.h; sourceTree = ""; }; - CF0AFCDA6D2B80364E9FAC5341C2852F /* NNMacrosCocoapodsFix.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = NNMacrosCocoapodsFix.m; sourceTree = ""; }; - D0A236319537EA4FF11FF6D0067BA75C /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; - DD714C1BB51594465245FD3A4FDA4EC4 /* NNMacros-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NNMacros-dummy.m"; sourceTree = ""; }; - DFFF00F5BDE3EA682FFAB8CD0000BC65 /* NNMacrosLazyGetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosLazyGetter.h; path = NNMacros/NNMacros/NNMacrosLazyGetter.h; sourceTree = ""; }; - E495F523C9670D9E192845CAC5BCE124 /* NSObject+NNMacrosAssociatedSynthesize.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+NNMacrosAssociatedSynthesize.h"; path = "NNMacros/NNMacros/NSObject+NNMacrosAssociatedSynthesize.h"; sourceTree = ""; }; + CBBD34324E922E56BEEA939E1851A351 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + D8690DFC4AA93CBBB548D32813CC0704 /* NNMacros-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NNMacros-dummy.m"; sourceTree = ""; }; + E0D256EEA22297A6B0F3EDB40CB9235F /* NNMacros.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NNMacros.xcconfig; sourceTree = ""; }; + E1A5DD1DCAC3343475CC3433E40B801B /* NNMacros-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NNMacros-umbrella.h"; sourceTree = ""; }; + E34D736C64096496B727DF539FC7407A /* NNMacrosCocoapodsFix.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = NNMacrosCocoapodsFix.h; sourceTree = ""; }; + EA19B8008F48AAD094EDCA2A95FBD576 /* NNMacrosVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosVersion.h; path = NNMacros/NNMacros/NNMacrosVersion.h; sourceTree = ""; }; + EA4F66D00C19756C82C3589194872E15 /* NNMacrosApp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosApp.h; path = NNMacros/NNMacros/NNMacrosApp.h; sourceTree = ""; }; EB5522056AFADCD02162C1D90B9990EA /* Pods-NNMacrosDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-NNMacrosDemo-umbrella.h"; sourceTree = ""; }; F1D8D340185117A1DA7A172C9256D33C /* Pods-NNMacrosDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-NNMacrosDemo-dummy.m"; sourceTree = ""; }; - F78F29F3607A3E5C7F34F5ABD53DE612 /* NNMacros-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "NNMacros-Info.plist"; sourceTree = ""; }; - F7AAA7F437C512B51766D08C71E3D21E /* NNMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacros.h; path = NNMacros/NNMacros/NNMacros.h; sourceTree = ""; }; FBFF92A2192D644D1B25039A0B61D798 /* Pods-NNMacrosDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-NNMacrosDemo.debug.xcconfig"; sourceTree = ""; }; - FEF34180898236532FD4459FB33F814B /* NNMacrosAssociatedSynthesize.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NNMacrosAssociatedSynthesize.h; path = NNMacros/NNMacros/NNMacrosAssociatedSynthesize.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - A5ECA5591B99181F3DD5A60ADCB4CB24 /* Frameworks */ = { + 8C05FEF7A44392136853434C533592B5 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 86D4FA065295D69C9BEF07DCB263E72A /* Foundation.framework in Frameworks */, + 31D91623F9AFEBFED8DEE0035424B586 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -106,36 +100,60 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 085D1ECDBB125A7EB07FCC6F867D8C33 /* CocoapodsFix */ = { + 07266CE28CEE046372A74241726C80A6 /* Support Files */ = { isa = PBXGroup; children = ( - A43832F13321C48C97EBE54291E2219F /* NNMacrosCocoapodsFix.h */, - CF0AFCDA6D2B80364E9FAC5341C2852F /* NNMacrosCocoapodsFix.m */, + B194FD57C40284FCCC248BCCBCC05A09 /* NNMacros.modulemap */, + E0D256EEA22297A6B0F3EDB40CB9235F /* NNMacros.xcconfig */, + D8690DFC4AA93CBBB548D32813CC0704 /* NNMacros-dummy.m */, + 05BFE7E9CB3307595C267C5078405A66 /* NNMacros-Info.plist */, + A18D01C301572BFD947986169945ECA1 /* NNMacros-prefix.pch */, + E1A5DD1DCAC3343475CC3433E40B801B /* NNMacros-umbrella.h */, ); - name = CocoapodsFix; - path = NNMacros/NNMacros/CocoapodsFix; + name = "Support Files"; + path = "Pods/Target Support Files/NNMacros"; sourceTree = ""; }; - 2DA2F2B90AE5B59DF6E6854BA0DB84D9 /* Support Files */ = { + 2AD21819C2D4F6AEAEB5E688CB6508DA /* Development Pods */ = { isa = PBXGroup; children = ( - 1C3E42E3A3CF5FBE0C8ABBEC1BFB316B /* NNMacros.modulemap */, - 85ABEAD625EDC54B8901739600C2EA8C /* NNMacros.xcconfig */, - DD714C1BB51594465245FD3A4FDA4EC4 /* NNMacros-dummy.m */, - F78F29F3607A3E5C7F34F5ABD53DE612 /* NNMacros-Info.plist */, - 50670CD3D7448AFAF358420E989BF1F9 /* NNMacros-prefix.pch */, - C738843D7FB74F3D83A9463685C89BDF /* NNMacros-umbrella.h */, + 2CD0BDCB94A3A4A8D921CCD572DD2D81 /* NNMacros */, ); - name = "Support Files"; - path = "Pods/Target Support Files/NNMacros"; + name = "Development Pods"; sourceTree = ""; }; - 3AE08F5C66B44F6A44DAE9FF07AED537 /* Bases */ = { + 2CD0BDCB94A3A4A8D921CCD572DD2D81 /* NNMacros */ = { isa = PBXGroup; children = ( - 91CAD2E1D7B0F79322B7771634109D9B /* metamacros.h */, + 8168A2FD7F0672CE989D4781C5872C38 /* NNMacros.h */, + EA4F66D00C19756C82C3589194872E15 /* NNMacrosApp.h */, + A63E6AD8829FD1C144EB87B04F4F1343 /* NNMacrosAssociatedGetter.h */, + 732417210FA0FDE021F1B5FB87995BB7 /* NNMacrosAssociatedSetter.h */, + 68632607C872B57F49EA45316D23055D /* NNMacrosAssociatedSynthesize.h */, + 11833B3FE3397FE3C41E25268B82DD5F /* NNMacrosColor.h */, + 2CB7B11041D725E9CEAD7E474DCECD19 /* NNMacrosDevice.h */, + 32DF905E8B709F2FF65DC90EF899462C /* NNMacrosLazyGetter.h */, + 11A8C91768C18926256A76759DA1B310 /* NNMacrosSandbox.h */, + A470CE63E4935C11A2BEB305C30FB3A9 /* NNMacrosScreen.h */, + 1AE3D8E7CBBA2E88367CE2329AC440D1 /* NNMacrosString.h */, + EA19B8008F48AAD094EDCA2A95FBD576 /* NNMacrosVersion.h */, + B61E768DDE75F39335F0C66EB2DBB180 /* Bases */, + 3959D0BF41089ED0B719F5547A0F9259 /* CocoapodsFix */, + 709018C88BEBF2425AF01874A99D8633 /* Pod */, + 07266CE28CEE046372A74241726C80A6 /* Support Files */, ); - name = Bases; + name = NNMacros; + path = ..; + sourceTree = ""; + }; + 3959D0BF41089ED0B719F5547A0F9259 /* CocoapodsFix */ = { + isa = PBXGroup; + children = ( + E34D736C64096496B727DF539FC7407A /* NNMacrosCocoapodsFix.h */, + 246F47CDDB348648546874ACC830736C /* NNMacrosCocoapodsFix.m */, + ); + name = CocoapodsFix; + path = NNMacros/NNMacros/CocoapodsFix; sourceTree = ""; }; 638E82D7F97D06B405D7EEE2B795BD98 /* Targets Support Files */ = { @@ -146,31 +164,22 @@ name = "Targets Support Files"; sourceTree = ""; }; - 64B0A3543864FEA5E2CCFA3C2E6ADA1D /* NNMacros */ = { + 709018C88BEBF2425AF01874A99D8633 /* Pod */ = { isa = PBXGroup; children = ( - F7AAA7F437C512B51766D08C71E3D21E /* NNMacros.h */, - 52A4FE00D5919CF265EF2AD671639601 /* NNMacrosApp.h */, - 84F1F60FC13A0F52FAE246A4A24FD433 /* NNMacrosAssociatedGetter.h */, - 4ECF3D82493D8DF5D1E27804410512DF /* NNMacrosAssociatedKey.h */, - 395388C9D1F6344D7E75943205277075 /* NNMacrosAssociatedSetter.h */, - FEF34180898236532FD4459FB33F814B /* NNMacrosAssociatedSynthesize.h */, - 75365934D2C0102BF79B9223BE916565 /* NNMacrosColor.h */, - 89327FEC1130C9DC8547604ADBF88CED /* NNMacrosDevice.h */, - DFFF00F5BDE3EA682FFAB8CD0000BC65 /* NNMacrosLazyGetter.h */, - A8741FC943D37C285E9EFFF98E5D4594 /* NNMacrosSandbox.h */, - 0E58E879C8DA0898C30C29766212F391 /* NNMacrosScreen.h */, - 5E3510E965FD0C9E17E9207CEA38B6CF /* NNMacrosString.h */, - CDFF36E3E957F69409F6B9CF70B12652 /* NNMacrosVersion.h */, - E495F523C9670D9E192845CAC5BCE124 /* NSObject+NNMacrosAssociatedSynthesize.h */, - 641DB17F5F54BCAE51FEC7FF6050524E /* NSObject+NNMacrosAssociatedSynthesize.m */, - 3AE08F5C66B44F6A44DAE9FF07AED537 /* Bases */, - 085D1ECDBB125A7EB07FCC6F867D8C33 /* CocoapodsFix */, - F6D427D81C102E8B0762C0444F9B0E2E /* Pod */, - 2DA2F2B90AE5B59DF6E6854BA0DB84D9 /* Support Files */, + 4A87EF0D48A2AD58DE448CFEFC7D5E4B /* LICENSE */, + 9A54794D46D64EB48680E94AF8C59DB8 /* NNMacros.podspec */, + CBBD34324E922E56BEEA939E1851A351 /* README.md */, ); - name = NNMacros; - path = ..; + name = Pod; + sourceTree = ""; + }; + B61E768DDE75F39335F0C66EB2DBB180 /* Bases */ = { + isa = PBXGroup; + children = ( + 945DF310083DF3BD6EF8757166A7F180 /* metamacros.h */, + ); + name = Bases; sourceTree = ""; }; C0834CEBB1379A84116EF29F93051C60 /* iOS */ = { @@ -185,7 +194,7 @@ isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - DAAC9B848350BCDC25A29698ECE67E20 /* Development Pods */, + 2AD21819C2D4F6AEAEB5E688CB6508DA /* Development Pods */, D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, E454D0C0C543BD04903E60C8AFF41C30 /* Products */, 638E82D7F97D06B405D7EEE2B795BD98 /* Targets Support Files */, @@ -200,14 +209,6 @@ name = Frameworks; sourceTree = ""; }; - DAAC9B848350BCDC25A29698ECE67E20 /* Development Pods */ = { - isa = PBXGroup; - children = ( - 64B0A3543864FEA5E2CCFA3C2E6ADA1D /* NNMacros */, - ); - name = "Development Pods"; - sourceTree = ""; - }; E454D0C0C543BD04903E60C8AFF41C30 /* Products */ = { isa = PBXGroup; children = ( @@ -234,16 +235,6 @@ path = "Target Support Files/Pods-NNMacrosDemo"; sourceTree = ""; }; - F6D427D81C102E8B0762C0444F9B0E2E /* Pod */ = { - isa = PBXGroup; - children = ( - 5B95F5F8EF86C37E046740B03EC84BDC /* LICENSE */, - 7C1E3979B296673A81D006998C1444A7 /* NNMacros.podspec */, - D0A236319537EA4FF11FF6D0067BA75C /* README.md */, - ); - name = Pod; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -255,27 +246,25 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - CB090FC21A380785CB2C052A104C9751 /* Headers */ = { + 3AB700258ACFA21A59BE366E87A91AFB /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 8AA9FD0CFEBF434CD0955A6AA3AC62C4 /* metamacros.h in Headers */, - F05F06930B51A52A93CEAD1B598D752C /* NNMacros-umbrella.h in Headers */, - D26A2ACF43F9070FB4D8DA8BCF177018 /* NNMacros.h in Headers */, - F656312725A6395F55DAF70B36E4B8AC /* NNMacrosApp.h in Headers */, - 099CD09A8F34E51490AF07DB81D65673 /* NNMacrosAssociatedGetter.h in Headers */, - AF74B73E3243446D1E81D4C1509BD144 /* NNMacrosAssociatedKey.h in Headers */, - EDCF48C79790596B025A12D2B7C68297 /* NNMacrosAssociatedSetter.h in Headers */, - 47252836AC830052B06ECA5F2D157962 /* NNMacrosAssociatedSynthesize.h in Headers */, - 5A0AAB77AD311FBBF91DF9EC5D6AA904 /* NNMacrosCocoapodsFix.h in Headers */, - 0B6AE6E0DFF444F414DD75D356C33178 /* NNMacrosColor.h in Headers */, - 69663F3DBE620FD7F79DB7CACB4D517A /* NNMacrosDevice.h in Headers */, - BC4013F8266BD12DEEC36C0648D25236 /* NNMacrosLazyGetter.h in Headers */, - 199B065E75115751430330E55823107E /* NNMacrosSandbox.h in Headers */, - 760B80A931AD6A96B3A00DF145ED98C8 /* NNMacrosScreen.h in Headers */, - 5C304A5B36A7FCD617F303D160D3E022 /* NNMacrosString.h in Headers */, - 4E94F791B16CDD26E70527F56BB8828E /* NNMacrosVersion.h in Headers */, - B2DE3ADCC25C2F8C7618DE390BBAC5EF /* NSObject+NNMacrosAssociatedSynthesize.h in Headers */, + F1E0F5C635294F4058F4ABE08807BEB4 /* metamacros.h in Headers */, + 975CE75D0DAA96ED1773F398ED110DB1 /* NNMacros-umbrella.h in Headers */, + 6F9E06CDA9B254E6BA348C4675B19B69 /* NNMacros.h in Headers */, + 1DE7A7FCFBC46DDEC2ED982398EBCDA2 /* NNMacrosApp.h in Headers */, + 4ADADCB30C2057975092A61D48563935 /* NNMacrosAssociatedGetter.h in Headers */, + 8C9076CEF0B66B9597DA716A4D766EDB /* NNMacrosAssociatedSetter.h in Headers */, + 8F347C51AE56F25CF3B75DF9CD0F7451 /* NNMacrosAssociatedSynthesize.h in Headers */, + D8551C2E3B078DEC5212452ECFB82E78 /* NNMacrosCocoapodsFix.h in Headers */, + BEDD2407CB966DF45E85E47FD881E20F /* NNMacrosColor.h in Headers */, + AD9C737F07F0166FBB6E8A321F1111C1 /* NNMacrosDevice.h in Headers */, + 9686D32F35030BCC7FBD26B64209CFD5 /* NNMacrosLazyGetter.h in Headers */, + 5A823A49A80DD710CEB26D74FFB6B8EE /* NNMacrosSandbox.h in Headers */, + EF6849419A9E75E99BAB8750B4247CE5 /* NNMacrosScreen.h in Headers */, + E1B887B32D265393AAEA9CE5B2AEAEA8 /* NNMacrosString.h in Headers */, + 9CCCB27667DA97521AA7FAEEB4D4274D /* NNMacrosVersion.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -284,12 +273,12 @@ /* Begin PBXNativeTarget section */ 39324E56B0B8AD687391B08DC0722105 /* NNMacros */ = { isa = PBXNativeTarget; - buildConfigurationList = A053228FEC0AD02D484AB2C1534EBDA8 /* Build configuration list for PBXNativeTarget "NNMacros" */; + buildConfigurationList = 53C345E243B0A4C74270F93673A30310 /* Build configuration list for PBXNativeTarget "NNMacros" */; buildPhases = ( - CB090FC21A380785CB2C052A104C9751 /* Headers */, - 4682DC1759E405C48F80BEC7722F6D6B /* Sources */, - A5ECA5591B99181F3DD5A60ADCB4CB24 /* Frameworks */, - 05F575A6DCCCF91B13F1441F4A356B8C /* Resources */, + 3AB700258ACFA21A59BE366E87A91AFB /* Headers */, + 3822415630AA4DDCDF8A1077FECDEEEE /* Sources */, + 8C05FEF7A44392136853434C533592B5 /* Frameworks */, + F2986C6FBE0D7B8185C0AEA6DFEBE2C1 /* Resources */, ); buildRules = ( ); @@ -347,7 +336,7 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 05F575A6DCCCF91B13F1441F4A356B8C /* Resources */ = { + F2986C6FBE0D7B8185C0AEA6DFEBE2C1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -364,13 +353,12 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 4682DC1759E405C48F80BEC7722F6D6B /* Sources */ = { + 3822415630AA4DDCDF8A1077FECDEEEE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 7D992C54025C40A7A142EEE3E951EAC4 /* NNMacros-dummy.m in Sources */, - 90D3BA86467C275C0A97712B02346269 /* NNMacrosCocoapodsFix.m in Sources */, - 1A942345F7B4CE0EC22C81B31CAE1833 /* NSObject+NNMacrosAssociatedSynthesize.m in Sources */, + B01A9F9233F7E1ECE7DFE8FC76CA5A84 /* NNMacros-dummy.m in Sources */, + 1C74B7864FDBDD5019E07808E44A4D6F /* NNMacrosCocoapodsFix.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -394,10 +382,11 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 3256745EAC8132454F71D9DB96DC9482 /* Debug */ = { + 45D44497CEA04E8E27CF12B7B9A14AEF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 85ABEAD625EDC54B8901739600C2EA8C /* NNMacros.xcconfig */; + baseConfigurationReference = 29D9E3B093118803A912DDAFD9CE4DA9 /* Pods-NNMacrosDemo.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -407,28 +396,30 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/NNMacros/NNMacros-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/NNMacros/NNMacros-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-NNMacrosDemo/Pods-NNMacrosDemo-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/NNMacros/NNMacros.modulemap"; - PRODUCT_MODULE_NAME = NNMacros; - PRODUCT_NAME = NNMacros; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-NNMacrosDemo/Pods-NNMacrosDemo.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 45D44497CEA04E8E27CF12B7B9A14AEF /* Release */ = { + 4D7D90B82535093EE5949DC9EC884F4D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 29D9E3B093118803A912DDAFD9CE4DA9 /* Pods-NNMacrosDemo.release.xcconfig */; + baseConfigurationReference = E0D256EEA22297A6B0F3EDB40CB9235F /* NNMacros.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -438,25 +429,22 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-NNMacrosDemo/Pods-NNMacrosDemo-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/NNMacros/NNMacros-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/NNMacros/NNMacros-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-NNMacrosDemo/Pods-NNMacrosDemo.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/NNMacros/NNMacros.modulemap"; + PRODUCT_MODULE_NAME = NNMacros; + PRODUCT_NAME = NNMacros; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; 8F17DC3A99F99FBAD606CE6963886315 /* Release */ = { isa = XCBuildConfiguration; @@ -615,9 +603,9 @@ }; name = Debug; }; - F80999AE908384115904CEA96B1CCABA /* Release */ = { + DE5C8BE703A2FC92C71950689C6016FC /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 85ABEAD625EDC54B8901739600C2EA8C /* NNMacros.xcconfig */; + baseConfigurationReference = E0D256EEA22297A6B0F3EDB40CB9235F /* NNMacros.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -667,11 +655,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A053228FEC0AD02D484AB2C1534EBDA8 /* Build configuration list for PBXNativeTarget "NNMacros" */ = { + 53C345E243B0A4C74270F93673A30310 /* Build configuration list for PBXNativeTarget "NNMacros" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3256745EAC8132454F71D9DB96DC9482 /* Debug */, - F80999AE908384115904CEA96B1CCABA /* Release */, + 4D7D90B82535093EE5949DC9EC884F4D /* Debug */, + DE5C8BE703A2FC92C71950689C6016FC /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Target Support Files/NNMacros/NNMacros-umbrella.h b/Pods/Target Support Files/NNMacros/NNMacros-umbrella.h index ca28223..90c19a4 100644 --- a/Pods/Target Support Files/NNMacros/NNMacros-umbrella.h +++ b/Pods/Target Support Files/NNMacros/NNMacros-umbrella.h @@ -13,7 +13,6 @@ #import "NNMacros.h" #import "NNMacrosApp.h" #import "NNMacrosAssociatedGetter.h" -#import "NNMacrosAssociatedKey.h" #import "NNMacrosAssociatedSetter.h" #import "NNMacrosAssociatedSynthesize.h" #import "NNMacrosColor.h" @@ -23,7 +22,6 @@ #import "NNMacrosScreen.h" #import "NNMacrosString.h" #import "NNMacrosVersion.h" -#import "NSObject+NNMacrosAssociatedSynthesize.h" #import "NNMacrosCocoapodsFix.h" #import "metamacros.h"