碎片

  • pathForResource:ofType:inDirectotry当中的inDirectory必须是存在于xcode项目下的folder,而不能只是group。否则是获取不到正确路径的。
  • Today扩展和Container App不在一个进程里面,所以不能访问到主应用中的bundle。
  • a=a?:b; 等效于 a = a?a:b; 就是说a如果不为空就不做任何操作,保持自己原来的值。否则重新赋值。
  • wireshark抓包

太简单啦,用wireshark和X11,连接手机在终端用命令rvictl启动手机上的虚拟端口,然后在x11上就能抓到手机请求的http包了。新技能get。。
命令:rvitcl -s ;rvictl -l
原理就是在iOS5以后的设备通过数据线连接设备后,可以用UDID作为参数建立一个虚拟网络接口rvi(remote virtual interface), 然后用tcpdump或者wireshark等工具就可以对创建的接口进行抓包分析了

  • base64编码

将任何二进制串转换成字符串,保证编码后只有ASCII纯文本数据
Base64应用场景:早期是因为一些邮件网关只能识别ASCII,对于中文和图片等数据会被过滤。为了解决这个问题就采用了Base64编码然后传输,接收时再解码就解决了这个问题。现常用于传输一些二进制数据,如xml中的图片数据等;此外还用作简单的加密等等。(如md5校验,先计算md5再进行base64编码,混合加密)
Base64编码特点:编码后数据比原来的长,是原来的4/3;方便非文本数据的传输;

  • Macho是什么?
    可执行文件 逆向的时候用得到!

项目代码规范

  • [NSString substringAtIndex]适当时候考虑有emoji的情况
  • 当心NSTimer的循环引用导致内存泄漏
  • tableView的数据发生变化的时候应该及时reloadData
  • assign类型的delegate务必在dealloc时候置空。
  • 不要在controller的dealloc方法中调用self.view
    对象的init和dealloc方法中都不要使用self.语法访问属性
  • 使用索引方式访问数组钱要检查是否越界
  • 往数组和Dictionary中添加数据要判空处理
  • 重写系统父类方法,务必要调用父类的方法(特别是vc的生命周期相关的方法)
  • 不要在didReceiveMemoryWarning里释放view和数据、
  • 反序列化时一定要catch异常,序列化后对结果为nil增加保护逻辑
  • 添加Notification后,对象销毁时务必移除
  • 千万不要在category里面重写该类的方法,特别是系统类
  • 不需要的对象,及时从容器中移除,不需要的容器要及时释放

快捷键

  • command+shift+o : 快速定位到文件
  • shift+command+J : Reveal in Project Navigator
  • command+option+v : 剪切模式的粘贴
  • cmd+H : 隐藏当前窗口
  • cmd+tab : 切换窗口
  • cmd+F3 : 快速显示桌面

你可能感兴趣的:(碎片)