我们在创建模型的时候,常常要写一大堆恶心的@property(nonatomic, copy) NSString *name;
垃圾代码,遇到这个就恶心的想吐,
给NSObject
添加一个分类,当传入一个字典会自动生成打印处理,接下来需要做的就是command + c
然后command + v
到自己的模型中
1
2
3
4
5
6
7
8
9
10
11
12
|
#import
@interface
NSObject
(
propertyCode
)
/**
* 自动生成属性申明Code
*
* @param dict 传入的字典
*/
+
(
void
)
propertyCodeWithDictionary
:
(
NSDictionary
*
)
dict
;
@end
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#import "NSObject+propertyCode.h"
@implementation
NSObject
(
propertyCode
)
// 自动生成属性声明的代码
+
(
void
)
propertyCodeWithDictionary
:
(
NSDictionary
*
)
dict
{
NSMutableString
*strM
=
[
NSMutableString
string
]
;
[
dict
enumerateKeysAndObjectsUsingBlock
:
^
(
id
_Nonnull
key
,
id
_Nonnull
obj
,
BOOL
*
_Nonnull
stop
)
{
NSString
*str
;
NSLog
(
@"%@"
,
[
obj
class
]
)
;
if
(
[
obj
isKindOfClass
:NSClassFromString
(
@"__NSCFString"
)
]
||
[
obj
isKindOfClass
:NSClassFromString
(
@"NSTaggedPointerString"
)
]
||
[
obj
isKindOfClass
:NSClassFromString
(
@"__NSCFConstantString"
)
]
)
{
str
=
[
NSString
stringWithFormat
:
@"@property (nonatomic, copy) NSString *%@;"
,
key
]
;
}
if
(
[
obj
isKindOfClass
:NSClassFromString
(
@"__NSCFNumber"
)
]
)
{
str
=
[
NSString
stringWithFormat
:
@"@property (nonatomic, assign) int %@;"
,
key
]
;
}
if
(
[
obj
isKindOfClass
:NSClassFromString
(
@"__NSCFArray"
)
]
)
{
str
=
[
NSString
stringWithFormat
:
@"@property (nonatomic, copy) NSArray *%@;"
,
key
]
;
}
if
(
[
obj
isKindOfClass
:NSClassFromString
(
@"__NSCFDictionary"
)
]
)
{
str
=
[
NSString
stringWithFormat
:
@"@property (nonatomic, copy) NSDictionary *%@;"
,
key
]
;
}
if
(
[
obj
isKindOfClass
:NSClassFromString
(
@"__NSCFBoolean"
)
]
)
{
str
=
[
NSString
stringWithFormat
:
@"@property (nonatomic, assign) BOOL %@;"
,
key
]
;
}
[
strM
appendFormat
:
@"\n%@\n"
,
str
]
;
}
]
;
NSLog
(
@"%@"
,
strM
)
;
}
|