网站制作怎么做,电商推广是什么意思,佛山做外贸网站哪家好,成都医疗网站建设1.自动释放池autoreleasepool#xff1a;存入到自动释放池的对象#xff0c;在自动释放池销毁时#xff0c;会自动调用池内所有对象的release方法。调用autorelease方法将对象放入自动释放池。 Person *p1 [ [ [ Person alloc ] init ] autorelease];
2.在类方法里写一个…1.自动释放池autoreleasepool存入到自动释放池的对象在自动释放池销毁时会自动调用池内所有对象的release方法。调用autorelease方法将对象放入自动释放池。 Person *p1 [ [ [ Person alloc ] init ] autorelease];
2.在类方法里写一个同名的方法用于创造对象。
()instancetype person{ return [ [ [ self alloc ] init ] autorelease];
}
3.ARC:自动计算对象的引用值不要写release、retain、autoreleaseretainCount关键字。 没有强指针指向该对象时对象会被回收。要么强指针被回收要么置为nil。
4.强指针弱指针默认为强指针_strong来声明强指针。_weak来声明弱指针。
5.参数strong和weak针对指针默认为strong。strong代表property声明的私有属性是强类型。weak是弱类型。
6.循环引用A中有BB中有A如果两个都是strong就会内存泄漏。应该一端strong一端weak。
如果在MRC中一端retain一端assign。 7.ARC类和MRC类兼容命令-fno-objc-arc。 8.分类(Category)将一个类分为多个模块。 interface 本类(分类) end implementation 本类(分类) end 只能增加方法不能增加属性不能访问本类的私有属性但能调用setter和getter。 9.分类的作用将一个臃肿的类分多个模块管理对一个现有类加方法。 10.延展Extension是一个特殊的分类没有类名只有声明没有实现实现与本类共享也是类的一部分。将延展写在本类的实现文件。 interface 本类 end 11.延展的作用为类定义私有成员如果类的成员只希望在类内部访问就定义在延展中。如果类的成员允许外界访问就定义在本类。 12.延展和分类的区别①分类有名字延展没名字。②每个分类都有单独的声明和实现延展只有声明没有实现和本类共享一个实现。③分类只能新增方法延展中任意的成员可以写。④分类中可以写property只会生成setter和getter的声明延展写property生成私有属性生成setter和getter的声明和实现。