iOS 结构体struct就是这么简单

结构体的定义

// 结构体类型名 StudentScore

struct StudentScore {

    int stuNo;

    int stuMath;

    int stuEnglish;

    int stuChinese;

};

    // 创建stu结构体信息

    struct StudentScore st1 = {1, 98, 96, 87};

    // 结构体值的调用

    NSLog(@"st1:%d,%d,%d,%d",st1.stuNo,st1.stuMath,st1.stuEnglish,st1.stuChinese);


可以用typedef 来定义struct

// 使用typedef来定义结构体

typedef struct StudentScore2 { // 此处的StudentScore2可以直接删除不写

    int stuNo;

    int stuMath;

    int stuEnglish;

    int stuChinese;

} studentScore2;


    studentScore2 st2 = {2, 95, 88, 98};

    NSLog(@"st2:%d,%d,%d,%d",st2.stuNo,st2.stuMath,st2.stuEnglish,st2.stuChinese);


在 Swift 中,对于多个 struct 结构体的存储可以有多种方式。 ### 数组存储 可以使用数组来存储多个相同类型的 struct 结构体实例。以下是示例代码: ```swift // 定义一个结构体 struct Person { var name: String var age: Int } // 创建多个结构体实例 let person1 = Person(name: "Alice", age: 25) let person2 = Person(name: "Bob", age: 30) // 使用数组存储这些结构体实例 let people: [Person] = [person1, person2] ``` 这种方式简单直接,适合存储多个具有相同类型的结构体实例,方便进行遍历、查找等操作。 ### 字典存储 如果需要为每个结构体实例关联一个唯一的键,可以使用字典来存储。示例如下: ```swift // 定义一个结构体 struct Book { var title: String var author: String } // 创建多个结构体实例 let book1 = Book(title: "Swift Programming", author: "John Doe") let book2 = Book(title: "iOS Development", author: "Jane Smith") // 使用字典存储这些结构体实例 let books: [String: Book] = ["book1": book1, "book2": book2] ``` 字典存储可以通过键快速访问对应的结构体实例。 ### 嵌套结构体存储 可以在一个结构体中嵌套存储其他结构体,实现多层级的数据存储。示例如下: ```swift // 定义一个结构体 struct Address { var street: String var city: String } // 定义另一个结构体,嵌套 Address 结构体 struct Employee { var name: String var address: Address } // 创建 Address 结构体实例 let address = Address(street: "123 Main St", city: "Anytown") // 创建 Employee 结构体实例 let employee = Employee(name: "Eve", address: address) ``` 这种方式适合存储具有层次关系的数据。 ### 持久化存储 如果需要将多个 struct 结构体的数据持久化存储到磁盘,可以使用 UserDefaults、Core Data 或文件存储等方式。以 UserDefaults 为例: ```swift // 定义一个结构体 struct Settings { var isDarkMode: Bool var fontSize: Int } // 创建结构体实例 let settings = Settings(isDarkMode: true, fontSize: 16) // 将结构体数据转换为可存储的类型(如字典) let settingsDict: [String: Any] = ["isDarkMode": settings.isDarkMode, "fontSize": settings.fontSize] // 使用 UserDefaults 存储数据 let defaults = UserDefaults.standard defaults.set(settingsDict, forKey: "settings") ``` 这种方式适合需要在应用关闭后仍然保留数据的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值