Objective-C
逆袭的青年
这个作者很懒,什么都没留下…
展开
-
1、OC基本数据类型
在介绍基本数据类型之前,先扯点别的,OC中的所有变量都要求先声明后使用,声明变量时需要指定数据类型,也要指定变量名,说起变量名,就要先看一下标识符规则,标识符就是用于给程序中的变量、类、方法命名的符号,标识符使用有以下规则:1.标识符可以由字母、数字、下划线和美元符组成,不能以数字开头。2.标识符不能是OC中的关键字,但可以包含关键字。3.标识符不能包含空格。3.标识符不能包含除美原创 2014-12-04 14:46:40 · 7531 阅读 · 0 评论 -
14、OC 指针变量的强制类型转换
指针变量的强制类型转化同基本数据类型的强制类型转化相同,都是使用类型转化符圆括号。强制类型转换只改变编译时类型,但该变量所指的对象的实际类型并不会发生改变,所以强制类型转换时可能会出错。int main(int argc, const char * argv[]) { @autoreleasepool { NSObject* obj = @"hello";原创 2014-12-08 11:41:20 · 8349 阅读 · 0 评论 -
16、OC 类别(category)与扩展(extension)
一、类别OC可以为现有的类添加新的方法,并不需要通过继承的方式实现,也不需要访问原生代码,OC将这种动态特征称为类别,通过类别可以动态的为现有类添加新的方法,并且可以将类定义模块化地分布到多个相关文件中。类别的定义方式与类有差异,类别以(类名+类别名)命名,语法格式如下:接口部分:@interface 已有类 (类别名)//方法定义//...@end实现部分:原创 2014-12-09 12:05:22 · 4594 阅读 · 0 评论 -
17、OC 协议(protocol)
协议的作用与Java中接口的作用非常类似,用于定义类应该遵守的规范,协议不提供实现,只定义规范。协议中定义多个类的公共行为规范,协议通常定义一组公用方法,方法的实现交给类去完成。协议的基本语法格式如下:@protocol 协议名 父协议1,父协议2...>//协议方法@end协议支持多继承,可以看到上面的语法格式,多个父协议放在协议的方法需要类去实现,如果类没有原创 2014-12-09 17:10:24 · 2768 阅读 · 0 评论 -
18、OC 委托(delegate)
委托是协议的沿用,委托简单的理解就是某人委托某人去做某事,这个和java中的接口回调机制比较相似。委托在IOS开发中比较常用,比如我们不知道一个列表中的数据有多少,我们可以用委托的方式,将数据委托给其他类,让其他类去填充数据。委托的常用功能主要是传值和事件监听。我们下面使用委托来实现2个类的委托,即老师委托学生去买本《OC开发》。用来实现委托的协议(BuyBookDelegate.原创 2014-12-09 19:09:31 · 1722 阅读 · 0 评论 -
15、OC 包装类(NSNumber、NSValue)
在讲解包装类之前,我们首先看这几个类型:NSInteger、NSUInteger、CGFloat,这几个类型并不是包装类,而是基本类型,NSInteger和NSUInteger在64位和各种类似64位的各种平台上表现为long和unsigned long,而在32位上表现为int型。CGFloat在64位平台上相当于double,而在32位平台上相当于float。 NSValue和NS原创 2014-12-08 21:26:20 · 1682 阅读 · 0 评论 -
7、OC 形参个数可变的方法
NSLog函数可以传入多个参数,这个就是形参个数可变的方法,定义方法是在最后一个形参名后增加逗号和(…)。为了在程序中获取个数可变的参数,需要使用如下关键字:va_list:用于定义指向可变参数列表的指针变量va_start:该函数指定开始处理可变形惨的列表,并让指针变量指向可变形参列表的第一个参数va_end:结束处理可变形参,释放指针变量va_arg:该函数返回获取指针原创 2014-12-05 21:02:24 · 1775 阅读 · 0 评论 -
13、OC 面向对象3大特征:封装、继承、多态
一、封装封装指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。好处:隐藏类的内部实现细节;限制对成员变量的不合理访问;有利于保证对象信息的完整性;便于修改,提高代码可维护性。二、继承继承指可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。OC采用的是单继承的方式,每个子原创 2014-12-08 10:28:03 · 944 阅读 · 0 评论 -
11、OC @property 指示符assign、atomic、copy、retain、strong、week、等
在使用@property定义property时可以在@property与类型之间用括号添加一些额外的指示符,常用的指示符有assign、atomic、copy、retain、strong、week、等。下面对它们的用途和常常对应的属性讲解一下。assign:该指示符号对属性只是简单的赋值,不更改引用计数。常用于NSInteger等OC基础类型,以及short、int、double、原创 2014-12-06 22:27:20 · 6211 阅读 · 0 评论 -
8、OC ”类变量"
OC不支持类似于Java中的类变量,OC中也提供了static关键字,需要注意static关键字的用法:1.static不能用于修饰成员变量,它只能修饰局部变量、全局变量和函数2.static修饰局部变量表示将该局部变量存储到静态存储区3.static修饰全局变量用于限制该全局变量只能在当前源文件中访问4.static修饰函数用于限制该函数只能在当前源文件中调用我们可能原创 2014-12-05 21:44:45 · 3062 阅读 · 0 评论 -
12、OC KVC(键值编码)与KVO(键值监听)
一、键值编码 Key-Value-Coding KVC是通过字符串的形式操作对象的属性,这个字符串既可以是常量也可以是变量,使用KVC可以使得编码更加简洁。KVC支持类对象和内建基本数据类型。 获取值valueForKey:,传入NSString属性的名字。valueForKeyPath:,传入NSString属性的路径,xx.xx形式。valueForUnd原创 2014-12-07 22:14:37 · 1167 阅读 · 0 评论 -
6、OC self关键字
OC提供了一个self关键字,self关键字总是指向该方法的对象,self出现在某个方法体中时,它所代表的对象是不确定的,我们只需要记住它代表的只能是当前类的实例。1、self关键字的最大作用就是让类中的一个方法访问该类的另一个方法或者变量#import @interface Student : NSObject-(void)sleep;-(void)study;@end#im原创 2014-12-05 19:17:28 · 1246 阅读 · 0 评论 -
10、OC setter和getter (@property、@synthesize)
在上一节中我们创建了一个Person类,同时我们为Person类添加了属性,并给定了set和get方法,但是问题来了,我们的Person类属性比较少,尚且可以,那么如果Person类属性多的话怎么办呢,还需要为每个属性添加setter和getter么,OC显然已经考虑到了这个问题,并添加了自动合成setter和getter方法,如果开发者还是想自己控制某个属性的set或者get,那么可以自行编写并原创 2014-12-06 12:03:51 · 937 阅读 · 0 评论 -
9、OC 访问控制符(@private @package @protected @public)
OC中提供了4个访问控制符:@private @package @protected @public。@private(当前类访问权限):成员只能在当前类内部可以访问,在类实现部分定义的成员变量相当于默认使用了这种访问权限。@package(同映像访问权限):成员可以在当前类或和当前类实现的同一映像中使用。同一映像就是编译后生成的同一框架或同一个执行文件。@protected(子类访问原创 2014-12-06 11:09:05 · 6532 阅读 · 0 评论 -
5 、OC 类的定义和使用
Objective-C中定义类需要分为2个步骤1. @interface(接口)部分2. @implementation(实现)部分创建OC类会自动创建两个文件,分别是*.h文件和*.m文件,h文件就是定义接口部分,m文件就是实现部分。一、接口部分@interface用于声明定义类的接口部分,@end表示定义结束@interface Person : NSO原创 2014-12-05 17:13:20 · 1822 阅读 · 0 评论 -
4、OC 块(Block)
OC中块可以更好的简化Objective-C编程,在OC中很常用一、快的基本语法定义块的语法格式如下:^[块返回值类型](形参类型1 形参1,形参类型2 形参2.....){ //快执行体}需要注意:1.定义块必须以^开头2.定义块的返回值类型可以省略3.定义块无需指定名字4.如果块无参数,参数部分的括号不能省略,可以为空,通常使原创 2014-12-04 22:02:21 · 1097 阅读 · 0 评论 -
3、OC运算符优先级
OC运算符有以下几种1.算术运算符(+ - * / % ++ --)2.赋值运算符(= += -= *= /= %= &= ^= |= >=)3.比较运算符(> = 4.逻辑运算符(&& || ! ^)5.位运算符(& | ~ ^ >)6.类型相关运算符运算符优先级如下优先级原创 2014-12-04 20:41:57 · 5147 阅读 · 0 评论 -
2、OC类型转换
OC中有两种类型转换的方式:自动类型转换和强制类型转换一、自动类型转换将一个基本数据类型的值直接赋给另一个基本数据类型的变量自动转换有如下规则:1.可以直接将整数类型转换成浮点型变量,不会有太大的变化2.浮点类型赋值给整型,数值的小数会直接舍弃3.把取值范围大的变量赋值给范围小的变量时,可能发生溢出 //整型可以直接为浮点型赋值 int a =原创 2014-12-04 19:51:13 · 2022 阅读 · 0 评论 -
19、OC NSString与NSMutableString
//字符串初始化 NSString *str = @"Hello world"; NSString *str1 = [[NSString alloc]initWithString:str]; NSString *str2 = [[NSString alloc]initWithUTF8String:"hello world"]; NSS原创 2014-12-10 15:22:29 · 560 阅读 · 0 评论