·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> IOS学习笔记----15/08/31

IOS学习笔记----15/08/31

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

1.pch文件中的代码是全局的,不管是#import头文件还是#define宏,都可以在项目中的所有文件中使用。(凡是涉及到OC语法的内容都要放入到#ifdef __OBJC__  #endif中)。
2.pch中最好使用下面的宏对NSLog函数进行替换,在发布的时候直接将后部的NSLog进行注释则代码中不会打印任何值。

#define MyLog(...) NSLog(__VA_ARGS__)

3.IOS在未打包状态的时候会默认有一个DEBUG宏,在打包后则会自动删除,可以利用判断来优化上方代码。

#ifdef DEBUG
#define MyLog(...) NSLog(__VA_ARGS__)
#else
#define MyLog(...)
#endif

4.函数的外部声明:extern type name();

5.UIapplication是单例模式,只能通过sharedApplication方法获得,如果alloc init会报错。

6.获得UIApplication对象后可以修改各种属性

  1. applicationBadgeNumber:属性来修改app图标右上角的标记数字。(修改为0则表示没有标记,标记则消失)。
  2. networkActivityIndicatorVisible:改为YES则会在顶部栏出现小菊花提示用户正在联网。
  3. openURL:打开网络或者本地资源。网络资源URL格式为http/ftp://域名/资源路径,本地资源URL格式为file:///资源路径,电话则为tel://电话号码,邮件使用的是mailto://邮箱。使用下面代码创建。
    [application openURL:[NSURL URLwithString:@""]]

7.AppDelegate类即UIApplication的delegate对象,并且已经建立好连接了。(在实现文件中有定义好的方法,有英文注释)。

8.UIWindow是一种特殊的UIView,通常一个App只有一个UIWindow。

9.IOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的View,最后将控制器的View添加到UIWindow上面。

10.给UIWindow添加ViewController的时候选择rootViewController属性进行赋值,如果使用addSubview可能会出现野指针。

11.旋转事件发生的时候会首先有UIApplication知道,然后通知UIWindow,再由UIWindow通知自己的rootViewController。如果使用addSubview则没有效果。

12.[UIScreen mainScreen]可以获得屏幕的信息,给UIWindow的frame赋值mainScreen的bounds属性则可以使UIWindow布满屏幕并且x,y为0,0;

13.[self.window makeKeyAndVisible]是使self.window变为主窗口(KeyWindow)并且显示。makeKeyWindow方法则只是变为主窗口。

14.非KeyWindow的时候窗口的子控件TextField不能输入值(IOS7以前)

14.程序启动的完整过程
  1.main函数


  2.UIApplicationMain
  * 创建UIApplication对象
  * 创建UIApplication的delegate对象

  3.delegate对象开始处理(监听)系统事件(没有storyboard)
  * 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
  * 在application:didFinishLaunchingWithOptions:中创建UIWindow
  * 创建和设置UIWindow的rootViewController
  * 显示窗口

  3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)
  * 创建UIWindow
  * 创建和设置UIWindow的rootViewController
  * 显示窗口

 


 

由于本阶段学习目的为初步熟悉IOS,所有知识点不做深入,仅以灰色标注在意的知识点,当有空的时候回头再议。