J.D*_*Doe 1 arrays ios swift swift2
首先,我们都知道找到一个数组的索引很容易,但我找到了一个包含多个结构的数组中的项目索引.
这是我的班级:
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
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的阵列:
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})
}
Run Code Online (Sandbox Code Playgroud)
所以pSample最初是一个空白数组,它通过循环追加一类项.
sortInPlace函数帮助我根据globalPatientMilaAge对pSample进行排序.
所以这让我思考,如何从类数组中获取我的AppUserID索引(我将其转换为String)?
我尝试使用这个函数,但似乎没有用,因为我循环遍历类而不是类中的项.
appUserRanking = pSample.indexOf("\(AppUserID)")
Run Code Online (Sandbox Code Playgroud)
身体indexOf可以像一个封闭map和filter功能
appUserRanking = pSample.indexOf{$0.globalPatientID == AppUserID}
Run Code Online (Sandbox Code Playgroud)
PS:json[0][i]在重复循环中从json()获取一个对象6次效率非常低.
将对象分配给变量
let object = json[0][i]
Run Code Online (Sandbox Code Playgroud)
并以它为例
if (AppUserID as? String == object["App_ID"].stringValue){
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4134 次 |
| 最近记录: |