|  
 
 
OC中定义了一个结构体怎么设置结构体的值 
#import <Foundation/Foundation.h>   // 定义一个结构体保存生日 typedef struct {     int year;     int month;     int day; }Date;   // 定义枚举保存性别 typedef enum{KsexMan,KsexWomen} Sex;   //// 定义数组保存学生三科成绩 //int array[3] = {0};   @interface Student : NSObject {     NSString *_name;     Date *_birthday;     int _age;     float _height;     float _weight;     Sex *_sex;     int _markC;     int _markOc;     int _markIos; } @property NSString *name; @property Date *birthday; @property int age,markC,markOc,markIos; @property float height,weight; @property Sex *sex; 
.m文件中 Objective C code   #import <Foundation/Foundation.h> #import "Student.h"   int main(int argc, const char * argv[]) {     @autoreleasepool {                   // 创建一个学生         Student *s = [[Student alloc] init];         Student *s1 = [[Student alloc] init];                   // 设置属性         s.name = @"张三";         s.birthday->year = 1970;         s.birthday->month = 5;         s.birthday->day = 21; 
首先要说的是,你定义的Date 是一个结构体,访问结构体中的成员使用.点语法这一点是没有问题的。但不会是使用->来访问结构体中的成员。 还有一点要说的是如果定义成了属性,类Student中声明的成员变量可以省去。默认的系统会为属性生成getter,setter方法,以及使用_propertyname标识的成员变量。 你上成的代码就可以这样写 Objective C code 
  @interface Student:NSObject  @property NSString *name; @property Date *birthday; @property int age,markC,markOc,markIos; @property float height,weight; @property Sex *sex; @end 
设置Student的birthday属性中的结构体成员就可以按我上面的代码来赋值: Objective C code 
s.birthday.year = 1970; 
 |