1.自动释放池@autoreleasepool:存入到自动释放池的对象,在自动释放池销毁时,会自动调用池内所有对象的release方法。调用autorelease方法将对象放入自动释放池。
Person *p1 = [ [ [ Person alloc ] init ] autorelease];
2.在类方法里写一个同名的方法,用于创造对象。
(+)instancetype person{
return [ [ [ self alloc ] init ] autorelease];
}
3.ARC:自动计算对象的引用值,不要写release、retain、autorelease,retainCount关键字。
没有强指针指向该对象时,对象会被回收。要么强指针被回收要么置为nil。
4.强指针弱指针:默认为强指针,_strong来声明强指针。_weak来声明弱指针。
5.参数strong和weak:针对指针,默认为strong。strong代表@property声明的私有属性是强类型。weak是弱类型。
6.循环引用:A中有B,B中有A,如果两个都是strong就会内存泄漏。应该一端strong一端weak。
如果在MRC中一端retain一端assign。
10.延展Extension:是一个特殊的分类,没有类名,只有声明没有实现,实现与本类共享,也是类的一部分。将延展写在本类的实现文件。
@interface 本类() @end
11.延展的作用:为类定义私有成员,如果类的成员只希望在类内部访问,就定义在延展中。如果类的成员允许外界访问,就定义在本类。文章来源:https://www.toymoban.com/news/detail-854687.html
12.延展和分类的区别:①分类有名字,延展没名字。②每个分类都有单独的声明和实现,延展只有声明没有实现,和本类共享一个实现。③分类只能新增方法,延展中任意的成员可以写。④分类中可以写@property,只会生成setter和getter的声明,延展写@property生成私有属性,生成setter和getter的声明和实现。文章来源地址https://www.toymoban.com/news/detail-854687.html
到了这里,关于Objective-C学习笔记(ARC,分类,延展)4.10的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!