小白学开发(iOS)OC_ id类型(2015-07-28)

 //
//  main.m
//  id类型
//
//  Created by admin on 15/7/29.
//  Copyright (c) 2015年 admin. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[]) {
    
/*
    1. 首先id类型既然是一种类型,那么它就可以有一用途
        > 定义变量
        > 做函数返回值类型
        > 做参数类型
 
    2. id类型被称为万能指针类型, id ==NSString * 
 
    3. id的本质:typedef struct objc_object *id
 
    4. 注意:
            > 如果用id类型接收一个对象,调用对象特有方法不用进行强制类型转换
            > id 是一个万能指针,可以用来指向任何对象, 注意id后面不要加*
 */
    Person *p = [Person new];
    [p setAge:10];
    
//  多态:用父类指针接收
    NSObject *p1 = [Person new];
    Person *p2 = (Person *)p1;      // 这里为了使编译器编译通过,做强制类型转换
    [p2 setAge:20];                 //  而事实上,在运行的时候会动态绑定,自动找到真实类
    return 0;

//  id类型接收
    id p3 = [Person new];
    [p3 setAge:30];
}
//
//  Person.h
//  id类型
//
//  Created by admin on 15/7/29.
//  Copyright (c) 2015年 admin. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property int age;

@end
//
//  Person.m
//  id类型
//
//  Created by admin on 15/7/29.
//  Copyright (c) 2015年 admin. All rights reserved.
//

#import "Person.h"

@implementation Person

@end

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值