摘要:
1.代理模式核心思想:A类委托B类做某件事,然后A类获取B类的执行的返回结果!举例:女孩想去买电影票,但是自己不亲自去而是委托男孩了解电影电影票信息,同时女孩获得男孩买票的结果,代码模拟实现:/*********************************** Gril.h *************************************/#import @class Boy;@interface Gril : NSObject// “女孩”想去买电影票- (void)buyTicket;// “女孩”声明自己的代理对象@property (nonatomic,retain) B 阅读全文
摘要:
NSDate为日期时间类对象,简单操作:注意:直接NSLog输出NSDate对象,默认是以0时区为标准,因此会比北京时间少8小时1.将Date格式转换为自定义格式的字符串格式 // 自定义Date时间日期格式 // 创建日期时间对象 NSDate *date = [NSDate date]; // 借助日期时间对象格式化对象 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // 定义要显示的时间日期格式 HH:表示24小时格式 hh:表示12小时格式 fo... 阅读全文
摘要:
1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary但是这些类只能存放OC对象类型的数据2.如果要存放基本数据类型,必须先将基本暑假类型包装成对象类型然后再用集合类进行存储,OC中提供的包装类是NSNumber,NSValue。其中NSNumber继承于NSValue。3.NSNumber主要针对于基本数据类型的包装,NSValue主要针对结构体进行包装4.将包装成NSNumber或NSValue对象类型后存放在数组中,然后从集合类中取出NSNum 阅读全文
摘要:
Foundation框架中常用的类有:NSString、NSArray、NSSet、NSDictionary以及它们对应的子类NSMutableString、NSMutableArray、NSMutableSet、NSMutableDictionary,父类统一为不可变而子类可变,还包括NSDate、NSObject可变和不可变的区别是对象内容的可变和不可变,子类既然是继承父类那么子类可以使用父类中的任意方法1.NSString类的操作使用NSString类的对象初始化方法创建字符串 //创建无参数的字符串 NSString *str2 = [[NSString alloc] in... 阅读全文
摘要:
1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/2.在iOS开发中所有框架中Foundation框架是最基础的框架,Foundation框架里面包含了常用的类和数据类型比如结构体、枚举等3.使用Foundation框架只要包含它的主头文件即可,主头文件里面包含了框架中所有内容的头文件4.Foundation框架中常用的结构体 阅读全文
摘要:
strong:适用于OC对象,作用和非ARC中的retain作用相同,它修饰的成员变量为强指针类型weak:适用于OC对象,作用和非ARC中的assign作用相同,修饰的成员变量为弱指针类型assign:适用于非OC对象类型在OC对象循环引用的时候一端为strong类型,另一段为weak类型示例代码如下:/****************************** Teacher.h文件 ***********************************/#import @class Student;@interface Teacher : NSObject@property (nona 阅读全文
摘要:
一、ARC基本简介ARC:Automatic Reference Counting 自动引用完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。开发者不再需要担心内存管理,因为编译器已经处理了一切ARC是自iOS 5之后增加的新特性:ARC 是编译器特性,而不是 iOS 运行时特性,它也不是类似于其它语言中的垃圾收集器比如,Java中的垃圾回收是在运行时自动检测对象有没有用如果没用则进行回收ARC和手动内存管理性能是一样的,有时还能更加快速,因为编译器还可以执行某些优化Xcode5之后新建程序默认遵循ARC机制二、ARC基本 阅读全文
摘要:
设计简单的微博模型:用User类和Status类来模拟实现在非ARC机制下有两种方式,两者没有太大的区别之所以写了两种只是为了方便学习和对比两种写法! 第一种:没有使用atuorelease和自动释放池代码容易理解,但是开发中一般不这么写:/****************************** User.h文件 **************************************//* 设计微博用户模型: 姓名、微博号码、密码、头像、性别、手机、生日 */#import // 枚举和结构体不用关心内存问题typedef enum { SexMan, // 男... 阅读全文
摘要:
autorelase:可以将对象交给自动释放池中,释放池销毁的时候对里面的对象做一次release操作代码如下 @autoreleasepool { Person *person = [[[Person alloc] init] autorelease]; }上面代码虽然正确,但是为了简化代码在开发中一般是提供一个类方法来专门创建对象,并且将管理内存的代码封装到类方法中:注意:定义方法名的时候以类名开头,返回类型为instancetype,而且在创建对象的时候使用self关键字/******************************** Person.h文件 *... 阅读全文
摘要:
1.autorelease 基本用法对象执行autorelease方法时会将对象添加到自动释放池中当自动释放池销毁时自动释放池中所有对象作release操作对象执行autorelease方法后自身引用计数器不会改变,而且会返回对象本身2.autorelease 的优点autorelease实际上只是把对release的调用延迟了,对于每一次autorelease系统只是把该对象放入了当前的autorelease pool中,当该pool被释放时,该pool中的所有对象会被调用Release因为只有在自动释放池销毁的时候它里面的对象才销毁,因此不用关心对象销毁的时间也就不用关心什么时候调用rel 阅读全文