iOS 初级Note

1、Collectionview
2、图片上传排列
3、键盘监听
4、cell 重用机制 (代码顺序)
5、调用父类方法 先 【super ****】
6、viewcontroller的点击 取消键盘
7、活用Xcode方法:例如 table键 打方法前先打出类型
8、代码冗余 条件判断里的代码只写会变的值就好
9、删、改类 时 ,细心些

  1. alloc init 不能写在 setmodel 中 因为init 一直在执行 drowrect 方法
  2. 代码顺序 有时现在用到的模型,都还没有数据
  3. scrollview 的size 可以不大于frame 也能弹跳 alwaysbouncevertical属性
  4. for循环里面有alloc init 的话,放到释放池里面。
  5. 与网络请求无关的不要放在网络请求里。
  6. 记住自己以前写过的代码。
  7. 要把自己当成编译器,就是说,不用运行就知道运行起来是什么结果。
  8. 编译器报错不会那么温柔,直接警告或是崩
  9. 要注意一些对象,可能它被释放后,又有条用它,这时会蹦的
  10. 不是需要计算、多次使用、方便阅读的没必要 创建中间值。
  11. 可变字典和数组 不能alloc init 要new
  12. 代码的执行顺序,block异步回调,有时间延迟
  13. 下级返回上级刷新列表有三种办法:保存按钮代理,强指针,listChangeWithModel 、listCreatWithModel双代理三种,但是不能用 viewwillappear ,这四个方法基本不用。极极极极及少用。 详见宜修哥 地址模块
  14. 模型中的数组,在实例化时不需要再新建一个中间数组去赋值;
  15. 当数组中只有一个模型时,就不需要放到数据数组里了;
  16. 状态条设置成不透明可解决 scrollview 和 navigationbar 的坐标冲突;translucent = no;其实不用,只要self。view 加载的第一个视图是scrollview ,就是自动auto。。。= YES,否则则跳过这个属性;
  17. 做功能模块,整体把握还是不到位,是经验是熟练
  18. 字符串不占内存;
  19. 对于cell的高度,最好写在model里,(tableview的代理方法执行顺序)其次写在heightforow方法中(若是行数不多的话,因为这样代码易懂)。
  20. 网络请求中self.方法时 都换成 ——block(当 self调用方法时,self.tableVIew 则不用)
  21. uiimageView 上面的视图没法交互 打开userInterface
  22. morepicture 传参数时明明是数组,为什么我们要给成字典?[php不认识数组]
  23. clang: error: linker command failed with exit code 1 (use -v to see invocation)
  24. @class #import
  25. 自定义的view 加手势时,别忘了打开user interface (self.view 除外)
  26. 通知能少就少
  27. 如有if 考虑else,在逻辑方面以自己为用户的角度来思考问题,而不是开发者;
  28. md5 哈希算法
  29. app从0到1 客户需要提供的资料 需要申请的账号 需要的证书 流程顺序
  30. 别碰到电话就限制11位,也有可能是固定电话;
    • (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 方法和访问器 一样么 (前者好复杂)
  31. 懒加载-tableview方法-系统代理方法-自己的方法-自己的代理方法-网络请求的方法;
  32. 逻辑不通的话,不妨逻辑清零,从更大的方面来考虑;
  33. SDWebImage 有自己的缓存机制,同一个url就算返回的图片不一样,但是加载的图还是原来的。 [[SDImageCache sharedImageCache] clearDisk];//清楚缓存

44.scrollView 实例化是写坐标和 实例化后定义坐标是不一样的; 【可斜滑动】
45.最快速的提升流畅度的方法?
用instrument找出所有不需要透明但是透明的view,layer.全部弄成不透明的.
46.判断一个字符串是否包含另一个 NSRange range = [str rangeOfString:@"se"];
if (range.location != NSNotFound) {
NSLog(@"Found");
}
47.密码验证正则 6-18位 数字或者字母或者符号
NSRange range = [str rangeOfString:@"[0-9a-zA-Z]{6,18}" options:NSRegularExpressionSearch];
【比如@"[0-9a-zA-Z!@#$%]{6,18}" 】

48.空间天气 导航左侧按钮点击事件; 二级界面右滑手势;
1.思路清晰要,一个第三方库,在他的.h文件中肯定有必要的方法可供使用者调用;
2.一个类中若找不到你想要的方法或代理,看他的继承,父类;
3.问题找不到,绕个弯弯儿;

49.180天不能注册同名 是否访问第三方
50.只有在get/set方法中用若引用[_model],否则强引用[self.model];
51.command + i 选择水管标志的, 检查内存泄漏
command shift + i 检查死循环;
52.一个view .h -(instancetype)initStickContentView:(HFStickerContentView*)contentView;
.m
-(instancetype)initStickContentView:(HFStickerContentView *)contentView {
self = [super init];
if (self) {

}
return self;

}
50.有时手机连上xcode会蹦,但不连xcode是没问题的;

你可能感兴趣的:(iOS 初级Note)