随笔分类 - Objective-C
摘要:NSIndexSet NSIndexSet 用来存储下标或者NSRange,具有两个版本 ,NSIndexSet 和 NSMutableIndexSet. // 定义一个数组 NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4", nil] ; // 迭代获取符合条件的下标,返回一个下标...
阅读全文
摘要:retain 和 copy 的区别。 copy copy是通过旧对象创建一个新对象,新对象引用计数器为1,与旧对象的引用计数无关。 retain retain是创建一个指针,对象引用计数加1。retain 出来的指针和原对象的指针指向的内存地址是相同的。 如何实现copy 并不是所有对象都可以进行copy、mutableCopy 。对象如果可以被copy 则需要遵守NSCopying , 如果对象...
阅读全文
摘要:启动自动引用计数选项. 选择项目的属性文件 --》 搜索 automatic Reference --》 Objective-C Automatic Reference Counting --》 Yes ARC 和手动管理内存的区别。 ARC 并不是GC在运行中判断引用计数是否为0,从而清除内存。而是在代码编译之前通过静态分析工具Analyze自动生成内存管理代码。 开启ARC后,不能再使用ret...
阅读全文
摘要:手动内存管理 在进行内存管理的时候要注意内存管理的准则:谁开辟内存,谁释放内存(谁污染的谁治理) 。开辟内存之后,对象的引用计数为1,只有继承自NSObject的对象才有内促管理的概念, 当对象引用计数为0的时候对象的内存会被清理。 下列关键字会开辟内存,对象引用计数器+1 alloc new copy mutableCopy 下列是内存管理的相关方法。 retain :保留对象,对象...
阅读全文
摘要:类别 使用类别可以扩展类的功能,不管该类的源码是否存在都可以扩展,和继承的最大不同就是类别中的方法可以访问被扩展类的私有元素。 类别的命名通常使用"类+类别名"的形式,如 Person+PersonLife.h 类可以有多个类别。 类别会覆盖方法,如果类的方法和类别的方法冲突,则会调用类别的方法 类别可以访问私有元素,继承并不可以。 类别不能定义属性 类别的定义如下 #import "Pers...
阅读全文
摘要:SEL 类型 SEL 类型是用来描述一个方法的,可以理解为SEL是方法的指针.该SEL类型类似于Java中的Method类。OC中可以通过两种方法来获得SEL类型。 @selector(methodName) : NSSelectorFromString(@"methodName") ; 反射的方法 -(BOOL) isKindOfClass : (class) clazz isKindOfC...
阅读全文
摘要:ID类型 objective-c中id可以指向任何对象,在使用id的时候注意:不要再id后面加上'*' 。 id object = [[Child alloc] init]; // 类型转换 Child *child = (Child *) object ; [child myMethod] ;id 的缺点 id类型所存储的...
阅读全文
摘要:初始化方法的模板 -(id) init { // 标准初始化模板 self = [super init]; if (self) { // 实例变量初始化 } return self ; }多个初始化方法 @interface Person : NSObject// 定义属性@property(nonatomic) NSString *name ;...
阅读全文
摘要:继承的语法 在类的头文件中使用 ClassName : SuperClassName 的形式完成继承。我们每一个类都默认继承了NSObject 。 // 继承NSObject@interface Person : NSObject@end 子类不能访问父类的私有元素(实例变量、方法等)。 方法的复写 子类可以复写父类的方法,比如我们可以复写父类的description方法来展示当前类的信息。当使...
阅读全文
摘要:int在32bit和64bit有不同的最大值和占用不同的位数。 使用NSInteger,系统会根据当前环境(是32bit还是64bit)返回int 最大值。 NSUInteger 是 NSInteger 的无符号形式。 NSInteger 不是一个对象,它是基本数据类型的typedef ,格式化字符串使用%li. #if __LP64__ || (TARGET_OS_EMBEDDED && !...
阅读全文
摘要:异常的捕捉 // @try 块捕捉异常 @try { // 这里发生了一个异常 @throw [NSException exceptionWithName:@"demo" reason:@"the exception demo" userInfo:nil] ; } @catch (NSExcept...
阅读全文
摘要:【枚举类型】使用emum关键字创建枚举。// 定义一个枚举,用来表示方向enum Direction{up,down,middle,left,right};枚举的值都可以用数字表示,默认从零开始递增enum Direction direction = up ;// 输出0NSLog(@"direct...
阅读全文
摘要:【基本数据类型】类型占用字节short int2int4long intMac OS : 8/IOS: 4long long int8float4double8使用sizeof(type) 可以查看类型占用字节数//输出8NSLog(@"%lu",sizeof(double));来自为知笔记(Wiz...
阅读全文
摘要:【新建项目】在XCode中新建项目首先要选择项目模板。IOS : 用于编写IOS移动设备软件OS X : 用于编写Mac OS软件【填写项目信息】Project Name当前工程的产品名称.也就是程序生成后的名字Organization Name公司名称,或者作者名称Company Identifi...
阅读全文
摘要:【Objective-C常见的文件类型】 文件类型
说明 .m
OC源码文件 .h
头文件 .c
C源码文件 .cc
C++源码文件 .mm
OC++源码文件 【转义字符】 字符
说明 \b
退格 \t
制表 \r
回车 \t
水平制表 \v
垂直制表 \\
反斜杠 【Format占位符,常用的加粗斜线表示】 占...
阅读全文
摘要:【环境搭建前言】
开发环境必须搭建再Apple公司的Mac OS 系统上。因此无论采取何种方式,首先至少需要一台装有Mac OS 系统的电脑。您可以通过购买Apple 电脑或者为PC机安装黑苹果来获得Mac OS。 【下载安装XCode工具】
您可以在Mac OS 中的 Apple Store 直接下载XCode, 也可以通过苹果开发者网站. 来下载XCode 。下载的XCode组件囊括了...
阅读全文

浙公网安备 33010602011771号