摘要:
/* * NSSet和NSArray的对比 * 1> 共同点 * 都是集合,都能存放多个OC对象 * 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举) * 本身都不可变,都有一个可变的子类 * * 2> 不同点 * NSArray有顺序,NSSet没有顺序 */ NSSet *s = [NSSet set]; NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose", @"jack2",@"jack3",ni 阅读全文
摘要:
/* * NSArray :不可变数组 * NSMutableArray : 可变数组 *//* *生成数组,添加与删除元素。 */void mutableArray(){ NSMutableArray *array = [NSMutableArray arrayWithObjects:@"jim", nil]; // 每添加一个新元素到数组中,都会对这个元素做一次retain操作 // 每删除一个元素,都会对这个元素做一次release // 当数组被销毁的时候,数组中的所有元素都会做一次release [array addObject:@"... 阅读全文
摘要:
/* * 字符串的替换和插入 */void stringReplace(){ NSMutableString *str = [NSMutableString stringWithFormat:@"/users/mj/abc.txt"]; NSRange range = [str rangeOfString:@"abc"]; [str replaceCharactersInRange:range withString:@"cde"]; //将abc替换为cde NSUInteger location = [str rangeOfStri 阅读全文
摘要:
/* *字符串写入文件: */void stringExport(){ NSString *str = @"ha"; NSString *path = @"/Users/apple/Desktop/mj.txt"; NSError *error = nil; // 如果文件夹不存在,会写入失败 // 如果文件夹存在,文件不存在,会自动创建文件 // 每次写入都会覆盖以前的内容 // atomically :YES: 原子性操作,全部内容写入成功才会产生新的内容。如果中途写入失败,就回滚操作。 // ... 阅读全文
摘要:
//NSRange变量:表示一个区域; // 创建NSRange的方式 NSRange r1 = {2,4}; // 不推荐 NSRange r2 = {.location = 2,.length = 4}; // 不推荐 NSRange r3 = NSMakeRange(2, 4); // 推荐使用 NSString *str1 = @"i love oc"; // 查找某个字符串在str中的范围 // 如果找不到,length=0,location=NSNotFound==-1 ... 阅读全文
摘要:
一、arc的基本使用: ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特点 1> 不允许调用release、retain、retainCount 2> 允许重写dealloc,但是不允许调用[super dealloc] 3> @property的参数 * strong :成员变量是强指针(适用于OC对象类型) * weak :成员变量是弱指针(适用于OC对象类型) * assign : 适用于非OC对象类型 4> 以前的retain改为用strong 指针分2种: 1> 强指针:默认情况下,所有的指针都是强指针 __str... 阅读全文
摘要:
一、引用计数器的基本操作: 1.方法的基本使用 1> retain :计数器+1,会返回对象本身 2> release :计数器-1,没有返回值 3> retainCount :获取当前的计数器的值 4> dealloc // 当一个Person对象被回收的时候,就会自动调用这个方法 - (void)dealloc { NSLog(@"Person对象被回收"); // super的dealloc一定要调用,而且放在最后面 [super dealloc... 阅读全文
摘要:
1.id: 万能指针id :id对象不能用点语法、id对象本身已经有 * 了 因此变量名不能有 * 。 可以吧id理解为 NSObject * 类型数据! int main() { @autoreleasepool { Person *p = [Person new]; NSObject *o = [Person new]; // 万能指针id id d = [Person new]; [d setAge:... 阅读全文
摘要:
1 int main(int argc, const char * argv[]) 2 { 3 @autoreleasepool { 4 Student *stu = [[Student alloc] init]; 5 6 // 设置age的值 7 stu.age = 10; // 等价于[stu setAge:10]; 8 9 // 取出age的值 10 int age = stu.age; // 等价于int... 阅读全文
摘要:
一、语法简介: 1.类: 在Java中,我们用1个.java文件就可以描述清楚一个类;在OC中,一般用2个文件来描述一个类: 1> .h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end。 注意:.h中的方法只是做一个声明,并不对方法进行实现。 也就是说,只是说明一下方法名、方法的返回值类型、方法接收的参数类型而已,并不会编写方法内部的代码。 2> .m:类的实现文件,用于实现.h中声明的方法。类的实现使用关键字@implementation和@end。... 阅读全文