如何读取 swift 上的数组和枚举数据
How to read array and enum data on swift
如何在swift上读取这三种类型的数据
我想将这三个变量分配给标签。我该怎么做?
[这是第一次,用swift编码,我是一名学习者,我在IOS移动开发方面非常初学者]
student.swift
class Student{
let nubmers: [phone_number]?
let bday: DOB?
let gender: Gender?
init(numbers:[phone_number],bday:DOB, gender:Gender){
self.nubmers = []
self.bday = bday
self.gender = gender
}
}
enum Gender{
case Male
case Female
case Unspecific
}
phone_number.swift
import Foundation
struct phone_number {
var number:String!
}
DOB.dart
import Foundation
struct DOB {
let year:Int!
let month:Int!
let day:Int!
}
这样插入数据?正确吗?
let student1 = Student(
numbers: [phone_number(number: "0773024962")],
bday: DOB(year:1996,month:01,day:13),
gender: Gender.Male)
我想这样读 //错误
func setStudent(student: Student){
label.text = numbers.number
label.text = student.bday
label.text = student.gender
}
如果你想参考第一个phone号码,那么你需要
label.text = student.numbers.first?.number
我可以提出一些其他改进建议:
- 在你的 DOB 结构中使用隐式展开的可选值是没有必要的——初始化程序确保它们有值
- 为什么不简单地使用
Date
作为出生日期?
- 同样,在您的 phone_number 的结构中包装字符串似乎是不必要的。
- Swift 样式对结构使用大写的驼峰式大小写,classes 而不是_,所以它应该是
PhoneNumber
- 枚举案例应以小写字母开头
- 您可以为
Student
使用结构而不是 class - 您正在使用 let
属性,因此您已经具有不变性。结构为您提供自动初始化程序生成
struct Student {
let numbers: [String]
let bday: Date
let gender: Gender
}
enum Gender {
case male
case female
case unspecified
}
var dc = DateComponents()
dc.setValue(13, for: .day)
dc.setValue(1, for: .month)
dc.setValue(1996, for: .year)
dc.timeZone = TimeZone(secondsFromGMT: 0)
let dob = Calendar.autoupdatingCurrent.date(from: dc)!
// You could also use a DateFormatter to parse DOB from a string
let student1 = Student(numbers:["0773024962"], DOB:dob, gender:.male)
如何在swift上读取这三种类型的数据 我想将这三个变量分配给标签。我该怎么做? [这是第一次,用swift编码,我是一名学习者,我在IOS移动开发方面非常初学者]
student.swift
class Student{
let nubmers: [phone_number]?
let bday: DOB?
let gender: Gender?
init(numbers:[phone_number],bday:DOB, gender:Gender){
self.nubmers = []
self.bday = bday
self.gender = gender
}
}
enum Gender{
case Male
case Female
case Unspecific
}
phone_number.swift
import Foundation
struct phone_number {
var number:String!
}
DOB.dart
import Foundation
struct DOB {
let year:Int!
let month:Int!
let day:Int!
}
这样插入数据?正确吗?
let student1 = Student(
numbers: [phone_number(number: "0773024962")],
bday: DOB(year:1996,month:01,day:13),
gender: Gender.Male)
我想这样读 //错误
func setStudent(student: Student){
label.text = numbers.number
label.text = student.bday
label.text = student.gender
}
如果你想参考第一个phone号码,那么你需要
label.text = student.numbers.first?.number
我可以提出一些其他改进建议:
- 在你的 DOB 结构中使用隐式展开的可选值是没有必要的——初始化程序确保它们有值
- 为什么不简单地使用
Date
作为出生日期? - 同样,在您的 phone_number 的结构中包装字符串似乎是不必要的。
- Swift 样式对结构使用大写的驼峰式大小写,classes 而不是_,所以它应该是
PhoneNumber
- 枚举案例应以小写字母开头
- 您可以为
Student
使用结构而不是 class - 您正在使用let
属性,因此您已经具有不变性。结构为您提供自动初始化程序生成
struct Student {
let numbers: [String]
let bday: Date
let gender: Gender
}
enum Gender {
case male
case female
case unspecified
}
var dc = DateComponents()
dc.setValue(13, for: .day)
dc.setValue(1, for: .month)
dc.setValue(1996, for: .year)
dc.timeZone = TimeZone(secondsFromGMT: 0)
let dob = Calendar.autoupdatingCurrent.date(from: dc)!
// You could also use a DateFormatter to parse DOB from a string
let student1 = Student(numbers:["0773024962"], DOB:dob, gender:.male)