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

来源:互联网 发布:ubuntu服务器密码修改 编辑:程序博客网 时间:2024/05/29 11:55
 //
//  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
原创粉丝点击