小知识点二

一、利用KVC字典转模型实现原理:遍历字典中的所有key,去模型中查找有没有跟key相似的属性名。

  • 1.遍历出name这个key,去模型中查找有没有setName:方法,找到就直接调用,给模型的成员属性赋值。self.name = dict[@"name"]

  • 2.在去模型中查找有没有name这个属性名,如果找到,直接通过属性赋值 name = dict[@"name"]

  • 3.在去模型中查找有没有_name这个属性名,如果找到,直接通过属性赋值 _name = dict[@"name"]

  • 4.调用setValue:forUndefinedKey:报错。

二 自定义键盘

    // inputView:用来自定义文本框的键盘
    _birthdayField.inputView = datePicker;
    
    // inputAccessoryView自定义键盘tabbar
    _birthdayField.inputAccessoryView = [UIButton buttonWithType:UIButtonTypeContactAdd];

三、程序启动过程

  • main -》 UIApplicationMain -》 通知代理做事情

UIApplicationMain底层实现:

// principalClassName:描述UIApplication的类名字符串
// delegateClassName:描述UIApplication代理的类名字符串

int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);

1.创建UIApplication对象
2.创建UIApplication的代理对象,并且设置为UIApplication的代理.
3.开启一个主运行循环,处理事件
4.加载info.plist文件,判断是否有Main.storyboard,如果有就会去加载。
有Main.storyboard才会执行第5步
5.加载Main.storyboard,
5.1 创建窗口
5.2 加载Main.storyboard,初始化storyboard描述的控制器
5.3 设置窗口的根控制器,并且显示窗口

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 37.cocoa内存管理规则 1)当你使用new,alloc或copy方法创建一个对象时,该对象的保留计数器值为1...
    如风家的秘密阅读 882评论 0 4
  • 1.计算字符串高度问题 计算字符串高度一般使用两个方法:1、CGFloat height = [someStr b...
    Eddiegooo阅读 162评论 2 0
  • 目录:1、Category(类别)2、关于日期(NSDate)的几个常用方法3、图片拉伸4、APP跳转/跳转至系统...
    my_杨哥阅读 420评论 1 5
  • 讲述人 | 如果公众平台:東西 我们面临的第一件事,就是决定要去的地方。时间有限,又不愿意像旅行团一样走马观花,所...
    東西阅读 496评论 2 2
  • 日子和我终于正常起来了。 忙碌了起来挺好的,离考试的日期越来越近,压力也自然来了,努力一把,也让自己爱学习一回。
    与城阅读 159评论 0 0