oc
文章平均质量分 72
mardax
这个作者很懒,什么都没留下…
展开
-
oc——KVO
KVO原创 2016-06-18 06:45:00 · 439 阅读 · 0 评论 -
oc——KVC
KVC原创 2016-06-18 06:44:26 · 271 阅读 · 0 评论 -
oc——类——声明 定义 实现
声明类的声明,又称类的前向声明,即forward declaration,告诉编译器class类型,但当前并不知道class具体细节,是不完全类型类的声明只能用于指针类型,因为指针类型字长固定,编译器知道分配多少内存空间,如何操作指针类型类的声明不能用于对象(instance object&class object),因为对于instance object,编译器需要知道class object内容,对于class object,编译器需要知道meta-class object内容@class F原创 2017-03-14 01:52:20 · 1453 阅读 · 0 评论 -
oc——类——成员访问权限
成员访问权限@interface FBAnimal : NSObject{ int _food1; @private int _food2; @protected int _food3; @package int _food4; @public int _food5;}@end@interface FBAnimal (){ int _food6; @private int _food7原创 2017-03-14 02:12:25 · 703 阅读 · 0 评论 -
oc——类——类别
概述类别,category,是对类的implementation进行模块化设计,把implementation分散到不同的模块中允许声明Method的interface:primary class interface,extension interface,category interface允许定义Method的implementation:primary class implementation,category implementationcategory是对类的implementation原创 2017-03-15 00:57:38 · 484 阅读 · 0 评论 -
oc——类——协议
概述协议,protocol,是一种特殊的interface,这种特殊的interface不允许定义数据成员,允许声明Method,protocol纯粹作为接口使用,因此没有对应implementationprotocol不允许定义数据成员protocol允许声明Method,包括instance method(-)和class method(+),protocol没有对应implementationprotocol可继承protocol,而且支持多继承,protocol继承本质是union父pro原创 2017-03-15 00:58:36 · 544 阅读 · 0 评论 -
oc——类——数据成员
数据成员类只有instance object数据成员,没有class object数据成员,因此数据成员存储在class object(非meta-class object)的ivars中struct objc_ivar { char *ivar_name OBJC2_UNAVAILABLE; char *ivar_type原创 2017-03-14 16:24:25 · 352 阅读 · 0 评论 -
oc——类——方法成员
方法成员类方法成员有instance method(-)和class method(+),分别存储于class object和meta-class object,存储在class object(meta-class object)的methodLists中struct objc_method { SEL method_name OBJC2_UNAVAILABLE; char *method_types原创 2017-03-14 16:25:40 · 505 阅读 · 0 评论 -
oc——类——MRC ARC
RCreference counting,引用计数,instance object内存管理机制,表示instance object被多少个指针引用或拥有RC = 0时,instance object自动调用dealloc,instance object销毁,因此勿手动调用dealloc,否则会导致多次调用dealloc(多次销毁instance object)MRCmannul reference counting,手动引用计数,一种RC管理机制,开发者手动管理RC,MRC机制易导致RC混乱,引原创 2017-03-20 23:27:35 · 261 阅读 · 0 评论 -
oc——类——体系结构
类体系结构类核心数据结构objc_class&Classstruct objc_class { Class isa OBJC_ISA_AVAILABILITY;#if !__OBJC2__ Class super_class OBJC2_UNAVAILABLE; const char *name OBJC2_原创 2017-03-13 22:24:15 · 547 阅读 · 0 评论 -
oc——类——instancetype
instancetype在一些对象创建和初始化方法中,常看到方法返回类型为instancetype,比如NSObject中+ (instancetype)new OBJC_SWIFT_UNAVAILABLE("use object initializers instead");+ (instancetype)allocWithZone:(struct _NSZone *)zone OBJC_SWIFT_UNAVAILABLE("use object initializers instead");+原创 2017-03-23 17:46:56 · 445 阅读 · 0 评论 -
oc——nonnull、nullable、null_resettable、__null_unspecified
oc——类——nonnull、nullable、null_resettable、__null_unspecified原创 2017-04-10 15:50:03 · 906 阅读 · 0 评论 -
oc——内置类型
整型#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64typedef long NSInteger;typedef unsigned long NSUInteger;#elsetypedef int NSInteger;typedef unsigned int NSUInteger;#endif#define NSIntegerMax原创 2017-04-01 10:14:52 · 471 阅读 · 0 评论 -
oc——类——属性
概述property是oc提供的代码生成机制(代码缩写机制),目的为了提高开发效率(节省代码敲入量)property@property@property出现在interface中,用来合成Method声明,因此置于interface的{}外@interface FBAnimal : NSObject@property int age;@property UIColor *color;@end本质就是在interface中合成以下Method声明@interface FBAnim原创 2017-03-15 00:59:46 · 494 阅读 · 0 评论 -
oc——类——属性——修饰词——readwrite/readonly getter setter
readwrite/readonlyproperty中,getter又称read,setter又称write,readwrite/readonly这一组修饰词用来定制property的getter和setter合成,因此顾名思义:readwrite同时合成getter和setterreadonly只合成getter,不合成setter注:readwrite为默认值@interface FBAnimal : NSObject@property (readwrite) int age;@pro原创 2017-04-01 10:12:08 · 880 阅读 · 0 评论 -
oc——与c之不同——文件包含 默认初始化
oc——与c之不同——文件包含 默认初始化原创 2017-04-01 14:42:20 · 272 阅读 · 0 评论 -
oc——nil Nil NULL NSNull
nil&Nil&NULL- (void)nil_Nil_NULL{ NSLog(@"nil = %p, Nil = %p, Null = %p", nil, Nil, NULL); NSLog(@"equal(nil, Nil) = %d, equal(nil, NULL) = %d, equal(Nil, NULL) = %d", nil == Nil, nil == NULL, Nil == NULL); int *pi; pi = nil; pi原创 2017-04-01 10:15:55 · 366 阅读 · 0 评论 -
oc——隐式转换——类类型
类继承体系@interface FBAnimal : NSObject{ int _food1; int _food2;}- (void)dataOffset;@end@interface FBAnimal (){ int _food3; int _food4;}@end@interface FBAnimal (){ int _food5; int _food6;}@end@implementation FBAnim原创 2017-03-23 19:17:00 · 869 阅读 · 0 评论 -
oc——类——初始化
概述iOS 中对象创建是分两步完成:分配内存初始化对象数据成员创建NSObject对象的过程:苹果官方有一副图片更生动的描述了这个过程:初始化方法c++类有构造函数,构造函数负责实例对象初始化,构造函数函数名与类名一致,易识别,且会自动调用oc类没有构造函数,但有类似构造函数的初始化方法,初始化函数与类名不一致,且不会自动调用oc类初始化方法特征:instance methodMethod返回类型为instancetypeMethod的SEL以init起始初始化方法分类:原创 2017-03-23 17:37:25 · 923 阅读 · 0 评论 -
oc——类——__strong __weak __unsafe_unretained
概述__strong:强引用,改变instance object RC,instance object指针默认为__strong__weak:弱引用,不改变instance object RC,当RC = 0 dealloc时,__weak instance object指针置nil__unsafe_unretained:顾名思义,unsafe和unretained,不改变instance object RC,当RC = 0,dealloc时,__unsafe_unretained instance原创 2017-03-20 23:32:04 · 478 阅读 · 0 评论 -
oc——类——属性——修饰词——assign retain copy strong weak unsafe_unretained
MRC@interface FBFood : NSObject<NSCopying>{ NSString *_name; NSString *_color;}@end@implementation FBFood- (id)copyWithZone:(NSZone *)zone{ NSLog(@"class %s copy", object_getClassName(self)); FBFood *food = [[[self class] al原创 2017-04-01 10:12:51 · 456 阅读 · 0 评论 -
oc——类——属性——修饰词——atomic/nonatomic
oc——类——属性——修饰词——atomic/nonatomic原创 2017-04-01 10:13:24 · 375 阅读 · 0 评论 -
oc——block
oc——block原创 2017-04-10 15:51:06 · 346 阅读 · 0 评论