Objective-C基础
方便自己复习
超大神
努力成为大神的男人
展开
-
30-NSValue
1. 我们之前学习的结构体. NSRange CGPoint CGSize CGRect 这些都是结构体,它们的变量是无法存储到集合之中. 2. 解决方案: 先将这写结构体变量存储到OC对象中,再将OC对象存储到集合之中. 3. NSValue 类 的对象就是用来包装结构体变量的....原创 2018-05-07 19:34:12 · 121 阅读 · 0 评论 -
29-常用结构体
1. 定义1个变量来保存按钮在iOS界面上得位置. 我们定义1个结构体来表示控件在界面上得坐标. typedef struct { int x; int y; }CZPoint; CZPoint p1 = {20,30}; 在Foundation框架中,已经定义了1个结构体CGPoint. ...原创 2018-05-07 19:32:14 · 224 阅读 · 0 评论 -
28-NSFileManger
1. NSFileManger是Foundation框架提供的1个类. 这个类作用: 用来操作磁盘上的文件 文件夹 对他们进行创建、删除、复制 拷贝 移动..... 2. NSFileManager是1个类. 这个类的对象是以单例模式创建的. 如何得到NSFileManager的1个单例对象. 掉用这个类的类方法,defaultManager 就可以...原创 2018-05-07 19:28:55 · 146 阅读 · 0 评论 -
27-NSDate
1. NSDate 时间处理. 1). 可以得到当前时间. 创建1个NSDate对象就可以了,将这个对象输出,就是当前时间 得到的是当前系统的格林威治时间. 0时区的时间. 东8区. NSDate *date = [NSDate date]; NSLog(@"%@",date); 2). 格式化输出日期. 指定日期输出的格式 ...原创 2018-05-07 19:28:34 · 116 阅读 · 0 评论 -
26-字典Dictionary
1. NSArray与NSMutableArray 是OC中的数组. 存储数据的特点: 每1个元素紧密相连.并且每1个元素中都是直接存储的值. 缺点: 数组元素的下标不固定.都有可能会发生变化.无法通过下标来唯一确定数组中的元素. 希望: 有一种存储数据的方式 存储到数组中.可以快速唯一的确定数组的元素. 存储数据的时候.必须要为存储的数据取1个别名. ...原创 2018-05-07 19:28:11 · 219 阅读 · 0 评论 -
25-NSNumber
1. 无论是NSArray还是NSMutbaleArray里面都只能存储OC对象. 基本数据类型是无法存储的. 2. 如何将基本数据类型的数据存储到NSArray数组中.自定义包装类来包装基本数据类型.定义1个类,这个类的对象的作用是用来存储1个int类型的数据.再将这个对象存储到NSArray数组中. 3. NSNumber是Foundation框架中定义好的1个类.这个类的...原创 2018-05-07 19:27:46 · 151 阅读 · 0 评论 -
24-可变数组NSMutableArray
1. NSMutableArray是NSArray的子类. 1). NSMutableArray仍然是1个数组.具备NSArray数组的特点. 只能存储OC对象.每1个元素的紧密相连的. 2). NSMutableArray相对于父类做的扩展:NSMutableArray数组的元素可以动态的新增和删掉. 其他的用法均与NSArray一致. ...原创 2018-05-07 19:27:25 · 280 阅读 · 0 评论 -
23-数组NSArray
1. 回忆C语言中的数组 特点: a. 存储多个数据. b. 类型相同. c. 长度固定. d. 每1个元素都是紧密相连的. 2. NSArray 1). 是Foundation框架中的一个类.这个类的对象是来存储多个数据的,具备数组的功能. 所以,NSArray是OC中的数组. 2). 特点: a. 只...原创 2018-05-07 19:26:30 · 291 阅读 · 0 评论 -
22-字符串NSMutableString
1. 字符串的恒定性. 一旦创建1个字符串对象,那么这个字符串对象的内容就无法更改, 当我们修改字符串的时候,其实是重新的创建了1个字符串对象. 代码案例: NSLog(@"-------------------"); NSString *str = @""; //@"" for(int i = 0; i < 50000; i++) { ...原创 2018-05-07 19:26:04 · 179 阅读 · 0 评论 -
21-字符串NSString
1. NSString是1个数据类型.用来保存OC字符串的. 2. 其实NSString是Foundation框架中的1个类. 作用: 存储OC字符串的 所以.OC中的字符串本质上是用NSString对象来存储的. 3. 其实完整的标准的创建NSString对象的方式 NSString *str0 = [NSString new]; NSString *str1 = ...原创 2018-05-07 19:25:38 · 121 阅读 · 0 评论 -
20-OC关键字-super
1. 子类中不能存在和父类同名的属性. 因为子类从父类继承,就意味着子类拥有了父类的所有的成员 包括属性和方法. 也就相当于子类中其实已经定义了. 如果子类再定义1个同名的属性 很明显就冲突了. 2. super关键字. 1). 可以用在类方法和对象方法之中. 2). 在对象方法中可以使用super关键字调用当前对象从父类继承过来的对象方法. ...原创 2018-05-05 17:12:20 · 765 阅读 · 0 评论 -
19-OC关键字-self
1. 在方法的内部可以定义1个和属性名相同的局部变量. 这个时候 如果在方法中访问这个同名的变量,访问的是局部变量. 如果需要访问属性就需要使用关键字self 2. self:自己的. 和Java、C#中的this关键字有1点点像. 可以在对象方法和类方法中使用. self是1个指针. 在对象方法中self指向当前对象. 在类方法中self指向...原创 2018-05-05 17:12:02 · 211 阅读 · 0 评论 -
18-OC关键字-static
1. C语言中的static a. 修饰局部变量. b. 修饰全局变量. c. 修饰函数. 2. OC中的static关键字. a. static不能修饰属性 也不能修饰方法. b. static可以修饰方法中的局部变量. 如果方法中的局部变量被static修饰,那么这个变量就会被变成静态变量. 存储在常量区 ...原创 2018-05-05 17:11:37 · 258 阅读 · 0 评论 -
17-SEL
1. SEL 全称叫做 selector 选择器. SEL 是1个数据类型. 所以要在内存中申请空间存储数据. SEL其实是1个类. SEL对象是用来存储1个方法的. 2. 类是以Class对象的形式存储在代码段之中. 类名:存储的这个类的类名. NSString 还要将方法存储在类对象之中.如何将方法存储在类对象之中. 1). 先创建1...原创 2018-05-05 17:11:11 · 202 阅读 · 0 评论 -
16-点语法
1. Java、 C# 对象可以使用点语法来访问对象的成员. OC中也有点语法. OC中也可以使用点语法来访问对象的属性. 但是OC的点语法和Java C# 是完全不一样的. OC的对象如果要为属性赋值或者取值 就要调用对应的getter或者setter. 2. 使用点语法来访问对象的属性. 语法: 对象名.去掉下划线的属性名; p1.na...原创 2018-05-05 17:10:45 · 135 阅读 · 0 评论 -
15-property参数
1. @property参数. 1). @property可以带参数的. @property(参数1,参数2,参数3......)数据类型 名称; 2). 介绍一下@property的四组参数. a. 与多线程相关的两个参数. atomic、nonatomic. b. 在MRC模式下修饰对象和基本数据...原创 2018-05-05 17:10:22 · 341 阅读 · 0 评论 -
14-synthesize
1. @property 只能生成getter和setter的声明. 实现还要我们自己来. 而实现也是没有什么任何技术含量. 方法实现的代码能不能也可以自动生成呢? 2. @synthesize 1).作用: 自动生成getter、setter方法的实现. 所以,应该写在类的实现之中. 2).语法: ...原创 2018-05-05 17:09:39 · 174 阅读 · 0 评论 -
13-property
1. 我们写1个类. a. 要先为类写属性. b. 在声明属性的getter setter c. 再实现getter setter 2. @property 1). 作用: 自动生成getter、setter方法的声明. 因为是生成方法的声明,所以应该写在@interface类的声明之中. 2). 语法: ...原创 2018-05-05 17:09:13 · 144 阅读 · 0 评论 -
12-延展Extension
1. 延展: Extension 1). 是1个特殊的分类. 所以延展也是类的一部分. 2). 特殊之处: a. 延展这个特殊的分类没有名字. b. 只有声明没有实现.和本类共享1个实现. 2.延展的语法 语法; @interface 本类名 () @end 没有实现. 和本类共享1个实现. 3.为类添加延...原创 2018-05-05 17:08:48 · 229 阅读 · 0 评论 -
11-分类category
1. 分类. 类别、类目、category 2. 写1个学生类:类中有很多个方法. 吃 喝 拉 撒 睡.... 基本行为 学习、敲代码、写书.... 学习 玩Dota 玩LOL 玩CF.... 玩 爬山、跑步、踢足球..... 运动 ...... 如果将这些方法都写在同1个类模块中.当然完全是可以的. 如果全都写在一个模...原创 2018-05-05 17:08:23 · 168 阅读 · 0 评论 -
10-description
1. 非常重要的问题 %p : 打印的是指针变量的值. %@ : 打印的是指针变量指向的对象. 2. 使用NSLog函数 %@ 打印对象的原理. 1). 调用传入的对象的description方法. description是定义在NSObject协议中的1个方法.因为NSObject类遵守了NSObject协议. ...原创 2018-05-04 09:13:51 · 125 阅读 · 0 评论 -
09-类的加载过程
1、对象初始化以及销毁方法 +(id) alloc; 注意这里的alloc是一个类方法,调用alloc方法之后会在内存中分配一块空间, 并且引用计数会设置为1 +(id) init; 调用init方法表示初始化对象 -(void) dealloc; 这里注意一下dealloc不是一个类方法,而是一个实例方法。dealloc 方法用于销毁对象,当引用计数为0的时候系统会自动调用dea...原创 2018-05-04 09:13:24 · 103 阅读 · 0 评论 -
08-类方法的定义和使用
1. OC中的方法分为两种. 1).对象方法/实例方法: 我们之前学习的方法 就叫做对象方法. 如果想要调用对象方法就必须要先创建对象 通过对象名来调用. 2).类方法. 类方法的调用不依赖于对象.如果要调用类方法 不需要去创建对象.而是直接通过类名来调用. 2. 声明. 1).对象方法的声明: 对象方法声明...原创 2018-05-04 09:13:00 · 702 阅读 · 0 评论 -
07-方法的定义和使用
1、定义1个类,在类的.h文件申明方法,在.m文件中实现方法 @interface 类名 : NSObject { 属性 属性表示类的特征. } 方法的声明; 方法表示类的功能. @end @implementation 类名 方法的实现; @end 方法头中的数据类型都要用1个小括弧括起来. - (返回值类型)方...原创 2018-05-04 09:12:29 · 116 阅读 · 0 评论 -
06-类的定义和使用
1、如何创建类: -> 类的声明 @inteface 类名 : NSObject { 这类事物具有的共同的特征.将他们定义为变量. } 功能就是1个方法.将方法的声明写在这里. @end -> 类的实现 @implementat...原创 2018-05-04 09:11:59 · 173 阅读 · 0 评论 -
05、访问修饰符
1. 访问修饰符: 用来修饰属性.可以限定对象的属性在那1段范围之中访问. @private: 私有 被@private修饰的属性只能在本类的内部访问. 只能在本类的方法实现中访问. @protected: 受保护的. 被@protected修饰的属性只能在本类和本类的子类中访问. 只能在本类和子类的方法实现中访问. ...原创 2018-05-04 09:11:35 · 155 阅读 · 0 评论 -
04-id类型
1. NSObject. 是OC中所有类的基类.根据LSP NSObject指针就可以指向任意的OC对象. 所以.NSObject指针是1个万能指针.可以执行任意的OC对象. 缺点: 如果要调用指向的子类对象的独有的方法.就必须要做类型转换. 2. id指针. 是1个万能指针,可以指向任意的OC对象. 1). id是1个typedef自定义类...原创 2018-05-04 09:11:05 · 328 阅读 · 0 评论 -
03-NUll和nil的区别
1. NULL 只能作为指针变量的值. 如果1个指针变量的值是NULL值代表. 代表这个指针不指向内存中的任何1块空间 NULL其实等价于0 NULL其实是1个宏. 就是0 2. nil 只能作为指针变量的值. 代表这个指针变量不指向内存中的任何空间. nil其实也等价于0 也是1个宏. 就是0. 所以, NULL和nil其实是一样的 。...原创 2018-05-04 09:10:34 · 133 阅读 · 0 评论 -
02-NSLog
NSLog输出格式对象---------------------------------------------------------------------%@int------------------------------------------------------------------------%dshort int shortType----------------------...原创 2018-05-04 09:10:00 · 190 阅读 · 0 评论 -
01-基本数据类型
1、整型 int int integerType = 5; 占用4个字节,输出格式:%d2、短整型 short int shortType = 200; 占用2个字节,输出格式:%hi3、长整型 long long int longlongType = 7758123456767L; 占用4个字节,输出格式:%lli4、浮点型 float floatType = 3.141...原创 2018-05-04 09:09:32 · 197 阅读 · 0 评论