您现在的位置: 爱51代码网 >> 范文 >> 文章正文
OC中定义了一个结构体怎么设置结构体的值

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;

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    SharePoint 2013 Search REST AP
    SharePoint如何搜索指定的爬网内
    weblogic Servlet: "action" fai
    webdav 与exchange通信失败未找到
    SharePoint2013文档库可以直接存
    Unable to write data to the tr
    asp.net中listbox的items.count属
    C#不是每次查询数据是不是被缓存
    ASP.NET发布后能加载引用的js文件
    Hadoop2.2.0在eclipse控制台没有
    SharePoint 2013 Search REST AP
    SharePoint如何搜索指定的爬网内
    weblogic Servlet: "action" fai
    webdav 与exchange通信失败未找到
    SharePoint2013文档库可以直接存
    Unable to write data to the tr
    asp.net中listbox的items.count属
    C#不是每次查询数据是不是被缓存
    ASP.NET发布后能加载引用的js文件
    Hadoop2.2.0在eclipse控制台没有
    ios搜索功能历史记录如何保存
    tableview删除最后一条数据报
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |