//struct 后面那個要不要都行
typedef struct {//typedef struct后面也可以加個名字?
? ? __unsafe_unretained NSString*name;
? ? int age;
? ? int sex;
? ? char depment;
? ? char height;
? ? char weight;
}Person;
typedef enum {//typedef enum 后面也可以加名字
? ? spring,
? ? summer,
? ? autumn,
? ? winter
}Season;
@interface ViewController : UIViewController
@property(nonatomic,assign)Season season;
@property(nonatomic,assign)Person per;
/*結(jié)構(gòu)體也是一種數(shù)據(jù)類型黔牵,和int塔鳍,NSString一樣,只不過結(jié)構(gòu)體可以自己定義是什么數(shù)據(jù)類型柒爸,一般有三種方法定義結(jié)構(gòu)體
struct 結(jié)構(gòu)體名字 {
類型 名字;
類型 名字;
類型 名字;
...
};
*/
#pragma mark 方法一
-(void)firstStruct{
? ? struct student{
? ? ? ? char *namePinYin;
? ? ? ? int? age;
? ? ? ? __unsafe_unretained? NSString*name;//在結(jié)構(gòu)體中定義字符串需這樣
? ? };
? ? //此時student就代表一種數(shù)據(jù)類型受裹,然后可以聲明這種類型的變量? stu1
? ? struct? student stu1={"zqk",27,@"鄭乾坤"};
? ? struct student stu2;
? ? stu2.namePinYin="zhangsan";
? ? stu2.age=26;
? ? stu2.name=@"張三";
? ? NSLog(@"%s %i %@",stu1.namePinYin,stu1.age,stu1.name);
}
#pragma mark 方法二
-(void)secondStruct{
? ? struct {
? ? ? ? char *namePinYin;
? ? ? ? int age;
? ? ? ? __unsafe_unretained NSString*name;
? ? }stu;
? ? stu.namePinYin="lisi";
? ? stu.age=25;
? ? stu.name=@"李四";
}
#pragma mark 方法三
-(void)thirdStruct{
? ? //typedef? 是給已有數(shù)據(jù)類型起個別名;
? ? typedef struct student {
? ? ? ? char *namePinYin;
? ? ? ? int age;
? ? ? ? __unsafe_unretained NSString*name;
? ? }defStuden;
? ? struct student stu;
? ? stu.namePinYin="wangwu";
? ? defStuden stu2;
? ? stu2.namePinYin="wang";
}
#pragma mark 枚舉
-(void)EnumText{
? ? _season=winter;
? ? switch (_season) {
? ? ? ? case spring:
? ? ? ? ? ? NSLog(@"春");
? ? ? ? ? ? break;
? ? ? ? case summer:
? ? ? ? ? ? NSLog(@"夏");
? ? ? ? ? ? break;
? ? ? ? case autumn:
? ? ? ? ? ? NSLog(@"秋");
? ? ? ? ? ? break;
? ? ? ? case winter:
? ? ? ? ? ? NSLog(@"冬");
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? break;
? ? }
}