首页 > 代码库 > ios基础-小知识点收集(1)

ios基础-小知识点收集(1)

不积跬步,无以至千里;不积小流,无以成江海。----荀子

收集学习ios中的小知识点,每天进步一点点。

(一)@class和 #import

class:只声明类,不会引入类文件,加快编译速度,防止类相互import出错;在m中仍然需要import整个类文件。

import导入整个类文件,在需要使用类中的变量、函数和协议的时候需要使用。


(二)静态变量static、全局变量extern、局部变量、实例变量

static:为整类而非单个对象使用,隐藏封装在类中,对外不可见。

静态变量的优点:
1、节省内存。静态变量只存储一处,但供所有对象使用。
2、它的值是可以更新的。
3、可提高时间效率。只要某个对象对静态变量更新一次,所有的对象都能访问更新后的值。

extern:在方法外部定义的变量,作用域是整个源程序。全局变量不能在多个m文件中定义。

局部变量:在方法中定义的变量,作用域是方法内。

实例变量:在类文件方法外定义


(三)NSArray和NSMutableArray

首先,NSArray只能存储Objective-C 对象,而不能存储C语言中的基本数据类型,比如:int,flot,指针等。 在使用NSArray时,需特别注意,必须以nil 结尾,以此来代表结束。

NSArray 创建的是静态数组,一旦创建之后,就再也不能添加和删除数组中的对象了,只能替换

NSMutalbeArray 创建的是动态数组,可随意添加或删除数组中的元素。


(四)bool、BOOL和Boolean的区别

objc.h文件中如下定义

<span style="font-family:SimSun;font-size:18px;">typedef signed char     BOOL; 
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C" 
// even if -funsigned-char is used.
#define OBJC_BOOL_DEFINED


#define YES             (BOOL)1
#define NO              (BOOL)0</span>

BOOL是个signed char类型,Booleanunsigned char类型,bool是个整型。在oc框架中都是用BOOL,其他大部分地方是用bool。oc编程中常用BOOL。