Objective-C和Sprite Kit游戏开发从入门到精通
上QQ阅读APP看书,第一时间看更新

2.14 结构

大家知道,在实际应用中有很多数据是相关联的,包括日期中的年、月、日,士兵的各种属性,如姓名、编号、年龄、性别等。对于这些相关联的数据,我们可使用另一种自定义的类型,即结构类型。

在Objective-C中,使用struct关键字定义结构类型。结构可以将一组相关的数据组合成一个整体,方便数据管理和应用,如下面的代码,我们将使用结构定义一个日期结构类型。

    struct SDate {
        int year;
        int month;
        int day;
    };
    typedef struct SDate Date;

代码的最后一行,我们同样使用typedef定义了SDate结构类型的别名(Date)。下面,我们就可以使用Date来定义日期类型的变量了。

    Date today;

定义结构类型变量的同时,我们还可以按结构成员定义的顺序给它们赋值,如下面的代码。

    Date today = {2016, 6, 27};

访问结构成员时,我们使用圆点运算符,如下面的格式。

    <结构变量>.<成员名称>

在下面的代码中,我们修改today变量的内容,并显示。

    today.year = 2015;
    today.month = 10;
    today.day = 28;
    NSLog(@"今天是%i年%i月%i日", today.year, today.month, today.day);

对于比较简单的关联数据,我们可以使用结构类型定义,但对于结构比较复杂的数据类型,可能要同时管理数据和动作时,如太空船、机甲步兵、生化战士等,我们应该使用“类”类型进行管理和操作,在第4章会讨论相关的内容。