转载 mark666(简书作者), 链接:http://www.jianshu.com/p/63ee533a7705

我们在创建模型的时候,常常要写一大堆恶心的@property(nonatomic, copy) NSString *name;垃圾代码,遇到这个就恶心的想吐,我就想能不能自动给我生成了,你还别说网上github上就有这种软件,有兴趣的可以去搜一下,但是作为一个程序员不能老想着用别人的东西,所以我就给NSObject添加一个分类,当传入一个字典会自动生成打印处理,接下来需要做的就是command + c然后command + v到自己的模型中,然后采用了李明杰大神的MJExtension.h这个框架给模型数据数据赋值的方式(也就是运行时的方式),或者大家也可以通过KVC来赋值,都可以,下面提供生成属性代码的分类

// 自动生成属性声明的代码

+ (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);
}

本文会传一个简易的gitHub的链接,
https://github.com/markdashi/baiduCourse,项目里是有pch文件的,只不过由于原先设置的路径是绝对路径,所以你下载下来之后路径改变了,你重新定向一下pch的文件路径就行了;TAGRGETS(BaiduCourse) ->BuildSettings ->Prefix Header 双击原先的路径,删除,然后把项目中的pch文件拖到白色输入框,重新运行就行了

以上是mark666(简书作者),以此转载记录!

iOS 创建模型时自动生成属性的更多相关文章

  1. webstorm创建js文件时自动生成js注释

    设置webstorm创建js文件时自动生成js注释 settings--Editor--File and Code Temlates 黑色框框里的内容自己填写上去,以下是参考的代码块: /** * @ ...

  2. OC知识点(类方法,构造方法,组合模式,get,set方法,自动生成属性)

    1.类方法的优势 不用创建对象,节省了空间,直接用类名调用类方法,类方法为外界提供一个方便的调用接口.(特点:类方法以加号开头,不能使用自身的成员变量,它的调用不依赖成员变量) 2.构造方法(初始化成 ...

  3. java如何在eclipse编译时自动生成代码

    用eclipse写java代码,自动编译时,如何能够触发一个动作,这个动作是生成本项目的代码,并且编译完成后,自动生成的代码也编译好了, java编辑器中就可以做到对新生成的代码的自动提示? 不生成代 ...

  4. Eclipse中设置在创建新类时自动生成注释

    方法一:Eclipse中设置在创建新类时自动生成注释 windows-->preference Java-->Code Style-->Code Templates code--&g ...

  5. Visual Studio 2017 怎么将自动生成属性设置为旧版格式

    工具:Visual Studio 2017 1.点击工具,进入选项 2.选项窗口左侧找到C#--代码样式,点击 3.找到表达式首选项中:使用属性的表达式主体.使用索引器的表达式主体和使用访问器的表达式 ...

  6. 安装Ruby、Sass在WebStrom添加Watcher实现编辑scss文件时自动生成.map和压缩后的.css文件

    前言 这段时间一直在看Bootstrap,V3官方直接提供了Less版本的源码,就先将Less学完了,很简单的语法,学习写Demo都是在Webstorm里写的,配置了Watcher自动编译(详见< ...

  7. Visual studio 创建文件时自动添加备注

    Visual studio 创建文件时自动添加备注 描述 要求每回添加一个类,普通类或单元测试类文件头自动添加备注, 比如:Copyright, FileName, Author and so on. ...

  8. IntelliJ IDEA创建文件时自动填入作者时间 定制格式

    IntelliJ IDEA创建文件时自动填入作者时间 定制格式 学习了:https://blog.csdn.net/Hi_Boy_/article/details/78205483 学习了:http: ...

  9. IntelliJ IDEA 创建的文件自动生成 Author 注释 签名

    IntelliJ IDEA 创建的文件自动生成 Author 注释 签名1.打开 File --> Setting2.找到 Editor --> File and Code Templat ...

随机推荐

  1. Ubuntu下deb文件及tgz文件安装

    dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu.Knopp ...

  2. html和css

    html css 和js说明 1.什么是html? HTML(HyperText MarkUp Language)超文本标记语言,通过使用标记来描述文档结构和表现形式的一种语言,由浏览器进行解析,然后 ...

  3. Beta阶段第九次Scrum Meeting

    情况简述 BETA阶段第九次Scrum Meeting 敏捷开发起始时间 2017/1/2 00:00 敏捷开发终止时间 2017/1/3 00:00 会议基本内容摘要 deadline临近 参与讨论 ...

  4. 报错:init: Could not find wglGetExtensionsStringARB!

    如下操作即可恢复:

  5. 2.5多重else嵌套的二次方程求根

    #include<stdio.h> #include<math.h> int main() { double a, b, c, disc, x1, x2, realpart, ...

  6. Active Record 数据迁移

    1.创建controler: welcome ;action: index $ rails generate controller welcome index 2.创建名为Article的model定 ...

  7. C#对于文件的读写

    C#文件的读写操作 转载请注明出处 http://www.cnblogs.com/Huerye/ /// <summary> /// 写入txt文件 /// </summary> ...

  8. ACM之鸡血篇

    一匹黑马的诞生 故事还要从南京现场赛讲起,话说这次现场赛,各路ACM英雄豪杰齐聚南京,为争取亚洲总舵南京分舵舵主之职位,都使出了看 家本领,其中有最有实力的有京城两大帮清华帮,北大帮,南郡三大派上交派 ...

  9. WebService入门

    1.什么是web服务: web服务是一种可以用来解决跨网络应用集成问题的开发模式,这种模式为实现"软件即服务"提供了技术保障. 2.web服务的三个核心 2.1  SOAP SOA ...

  10. MySQL 应用优化

    一.使用连接池 二.减少对MySQL的访问 (A) 避免对同一数据做重复检索. (B) 使用查询缓存,MySQL的查询缓存会存储SELECT查询的命令文本和相应的结果. (C) 增加CACHE层 三. ...