周记总结 2017-3-10记下

  1. 熟悉Socket.IO原理。
  2. 看书《Objective-C高级编程:iOS与OS X多线程和内存管理》
  3. 了解iOS的方方面面

关于是否要releases dispatch queues

If your deployment target is lower than iOS 6.0 or Mac OS X 10.8

You need to use dispatch_retain and dispatch_release on your queue. ARC does not manage them.

If your deployment target is iOS 6.0 or Mac OS X 10.8 or later

ARC will manage your queue for you. You do not need to (and cannot) use dispatch_retain or dispatch_release if ARC is enabled.

(简单的说就是在iOS6.0之后,ARC会帮忙我们管理线程队列(GCD)不需要我们去retain或者release了。


数据模型属性采用的基本策略

除了基本类型需要用assign,字符串需要用copy,其他对象类型都需要用strong
(考虑到循环引用问题时strong和weak从中选择)


iOS应用到内部储存结构

  • Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录
  • Library/Caches : 保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据
  • Library/Preference :保存应用的所有偏好设置,iOS的 Setting(设置)应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录
  • tmp :保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录

Socket.IO

实现了实时双向的基于事件的通讯机制。旨在让各种浏览器与移动设备上实现实时功能,模糊化各种传输机制。


GCD

Main Dispatch Queue属于Serial Dispatch Queue

Global Dispatch Queue是所有应用程序都能够使用Concurrent Dispatch Queue


IBOutlet

IBOutlet对于编译器而言只是一个标记,也就是说,编译器会忽略这个关键字。

Interface Builder则是根据IBOutlet来寻找可以在Builder里操作的成员变量。

IBAction也是。。。(相当于void

The type qualifier IBAction, which is used in place of the void return type, flags the declared method as an action so that Interface Builder is aware of it.For an action method to appear in Interface Builder, you first must declare it in a header file of the class whose instance is to receive the action message.



关于设置StatusBarStyle的相关方法

定制statusBar的前景部分。

    • (UIStatusBarStyle)preferredStatusBarStyle;
    • (UIViewController *)childViewControllerForStatusBarStyle;
    • (void)setNeedsStatusBarAppearanceUpdate
  • 默认的黑色(UIStatusBarStyleDefault
  • 白色(UIStatusBarStyleLightContent


状态栏和导航栏高度

导航栏的高度为64,实际上,导航栏的高度包括了自身和statusBar的高度,导航栏自身高度为44statusBar的高度为20,加起来的64就作为导航栏的高度。

其实最好可以用代码来查看一下

CGRect rectOfStatusbar = [[UIApplication sharedApplication] statusBarFrame];
NSLog(@"statusbar height: %f", rectOfStatusbar.size.height);// 高度 
CGRect rectOfNavigationbar = self.navigationController.navigationBar.frame;
NSLog(@"navigationbar height: %f", rectOfNavigationbar.size.height); // 高度


instancetypeid的异同

instancetype的作用,就是使那些非关联返回类型的方法返回所在类的类型

1、相同点

都可以作为方法的返回类型

2、不同点

① instancetype<可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象;

② instancetype只能作为返回值,不能像id那样作为参数,比如下面的写法:



本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本站由 @shyiuanchen 创建,使用 Stellar 作为主题。