数据类型之id类型
id數據類型可以存儲任何類型的對象。在概念上類似于Java中的Object類,可以被轉換為任何數據類型。在內部處理中,id是一個指向任何一個繼承了Object或者NSObject類的對象,在使用時不用加星號。
Student.h
#import <Foundation/Foundation.h>@interface Student : NSObject {int sid; //學號NSString *name; //姓名 }@property int sid; @property (nonatomic,retain)NSString *name;-(void)print; //聲明一個名為print的實例方法 -(void)setSid:(int)sid andName:(NSString*)name;@endStudent.m
#import "Student.h"@implementation Student @synthesize sid,name;-(void)print {NSLog(@"My number is %i,and My name is %@",sid,name); } -(void)setSid:(int)sid1 andName:(NSString*)name1 {self.sid=sid1;self.name=name1; }@endMember.h
#import <Foundation/Foundation.h>@interface Member : NSObject {int age;NSString *name; }@property(nonatomic,retain)NSString *name; @property int age;-(void)print; -(void)setName:(NSString *)name1 andAge:(int)age1;@endMember.m
#import "Member.h"@implementation Member @synthesize age,name;-(void)print{NSLog(@"Myname is %@,Myage is %i",name,age); }-(void)setName:(NSString *)name1 andAge:(int)age1{self.age=age1;self.name=name1; }@endmain.m
#import <UIKit/UIKit.h>#import "AppDelegate.h" #import "Member.h" #import "Student.h"int main(int argc, char * argv[]) {@autoreleasepool {NSLog(@"My First App is Run!"); //為什么加了這句以后下面的print就打不出來了?Member *member1=[[Member alloc]init];[member1 setName:@"zhangsan" andAge:24];id data; //定義了一個id類型的變量datadata=member1;[data print];Student *student1=[[Student alloc]init];[student1 setSid:9527 andName:@"huaan"];data=student1;[data print]; } return 0; }?
轉載于:https://www.cnblogs.com/Birdmafly/p/3670952.html
總結