Object-C -----1

第一天开始~纪录我强大的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的优化,但是现在只对系统框架支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值