【发布时间】:2016-02-02 05:37:42
【问题描述】:
首先我们都知道查找数组的索引很容易,但我很难在包含多个结构的数组中查找项目的索引。
这是我的课:
class Patient{
private var id: Int
private var name: String
private var gender: String
private var mileage: Double
//global variable
var globalPatientID:Int{
return id
}
var globalPatientName:String{
return name
}
var globalPatientGender:String{
return gender
}
var globalPatientMileAge:Double{
return mileage
}
init(id:Int, name:String, gender:String, mileage:Double){
self.id = id
self.name = name
self.gender = gender
self.mileage = mileage
}
}
这是我的数组:
let AppUserID = prefs.objectForKey("AppUserID")
for var i=0; i<nou; ++i{
numberOfUsersExisting = nou
if (AppUserID as? String == json[0][i]["App_ID"].stringValue){
print("Assigning AppUserID")
appUserMileage = json[0][i]["Mileage"].doubleValue
}
pSample += [Patient(id: json[0][i]["ID"].intValue, name: json[0][i]["Name"].stringValue, gender: json[0][i]["Gender"].stringValue, mileage: json[0][i]["Mileage"].doubleValue)]
pSample.sortInPlace({$0.globalPatientMileAge < $1.globalPatientMileAge})
}
所以 pSample 最初是一个空白数组,它通过循环附加一类项目。
sortInPlace 函数帮助我根据 globalPatientMilaAge 对 pSample 进行排序。
所以这让我开始思考,如何从类数组中获取我的 AppUserID(我将其转换为字符串)的索引?
我尝试使用此函数,但它似乎不起作用,因为我正在循环遍历类而不是类中的项目。
appUserRanking = pSample.indexOf("\(AppUserID)")
【问题讨论】:
-
私有和公共属性的目的是什么?如果您想拥有只读属性,只需将属性声明为常量。
-
为了将来参考,现在的问题是如何从结构数组中获取索引...