第一天开始~纪录我强大的iOS之路!!!
先从最基本的开始~
1.创建对象
alloc:给变量分配内存空间;
init: 对变量进行初始化;
Uiview *view = [[Uiview alloc] init] ;
//词句是先给变量veiw 分配一块内存空间,然后对这块空间进行初始化
2.消息机制
Object-C执行方法的方式是向某个对象发送消息,一个消息包含以下信息:
(1)接受消息的对象(receiver)
(2)方法选择器(selector)
(3)执行方法所需要的参数(param)
例如:
Uiview *view = [[Uiview alloc] init];
//词句是先给变量veiw 分配一块内存空间,然后对这块空间进行初始化
[view addSubview:view2];
//给view变量发送一个消息,让view执行addSubview方法,参数为view2
以下是一段基本的示例代码:
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSMutableArray *items = [NSMutableArray array];
[items addObject:@"One"];
[items addObject:@"Tow"];
[items addObject:@"Three"];
[items addObject:@"four"];
}
return 0;
}
3.关于init方法
每个类都有一个或者多个初始化方法,对于Object-C来说,会有一个核心指定初始化方法,其他初始化方法调用核心指定初始化方法,
核心初始化方法会先调用[super init]这个方法先进行父类的初始化,然后再初始化本身。 示例:
-(instancetype)initWithName:(NSString *)itemName SeriName:(NSString *)seriName ItemNumber:(int)itemNumber ItemData:(NSData *)iemdata
{
self = [super init];
//切记 重点!!!
//默认在其他方法内对变量赋值都使用变量的存取方法,但是在核心初始化的时候使用直接赋值的方式
if (self)
{
_itemName = itemName;
_itemNumber = itemNumber;
_serilName =seriName;
_itemData = iemdata;
}
return self;
}
然后,如果类还有其他初始化方法,要在其方法里面调用核心指定初始化方法:
//后面的初始化方法调用核心初始化方法即可
-(instancetype)initWithName:(NSString *)itemName SeriName:(NSString *)seriName ItemNumber:(int)itemNumber
{
return [self initWithName:itemName SeriName:seriName ItemNumber:itemNumber ItemData:nil];
}
-(instancetype)initWithName:(NSString *)itemName SeriName:(NSString *)seriName
{
return [self initWithName:itemName SeriName:seriName ItemNumber:0];
}
-(instancetype)initWithName:(NSString *)itemName
{
return [self initWithName:itemName SeriName:nil];
}
-(instancetype)init
{
return [self initWithName:@"hhh"];
}
这样一来就形成了一个初始化链,即所有的初始化方法都会调用核心指定初始化方法。
4.类方法
类方法是通过 类名+类方法名 直接生成类对象的方法,也是调用了核心初始化方法:
//类方法,返回一个初始化变量
+(instancetype)goodnbritem
{
return [[self alloc] initWithName:@"xx" SeriName:@"yy" ItemNumber:666 ItemData:nil];
}
5.关于import
在导入自定义类的时候使用#import,在导入系统框架的时候使用@import。 @import是苹果官方对#import的优化,但是现在只对系统框架支持。