ios - 循环以获取自定义 NSObject 类 swift 中的数据

标签 ios arrays swift

嗨,我只是想知道如何从自定义 NSObject 类中提取数据,下面的位置 NSObject 类是我的 NSObject 类(假设数据已经从其他类填充)

import Foundation


class LocationModel: NSObject {

//properties

var name: String?
var address: String?
var latitude: String?
var longitude: String?


//empty constructor

override init()
{

}

//construct with @name, @address, @latitude, and @longitude parameters

init(name: String, address: String, latitude: String, longitude: String) {

    self.name = name
    self.address = address
    self.latitude = latitude
    self.longitude = longitude

}


//prints object's current state

override var description: String {
    return "Name: \(name), Address: \(address), Latitude: \(latitude), Longitude: \(longitude)"

}

}

这是我的循环提取数据(我不知道)

let MapPoint : LocationModel = LocationModel()
for item in MapPoint {

 let name = MapPoint.name
 let latitude = MapPoint.latitude
 let longitude = MapPoint.longitude

print(name, latitude, longtitude)
}

最佳答案

首先,删除默认的初始值设定项并将属性声明为常量和非可选值。好处是编译器将帮助您防止空数据。

class LocationModel: NSObject {

//properties

let name, address, latitude, longitude: String

// construct with @name, @address, @latitude, and @longitude parameters

init(name: String, address: String, latitude: String, longitude: String) {

    self.name = name
    self.address = address
    self.latitude = latitude
    self.longitude = longitude

}

//prints object's current state

override var description: String {
    return "Name: \(name), Address: \(address), Latitude: \(latitude), Longitude: \(longitude)"

}

现在要迭代的对象必须是[LocationModel]类型的数组

let mapPoints = [LocationModel(name:"name1", address:"address1", latitude:"latitude1", longitude:"longitude1"),
                 LocationModel(name:"name2", address:"address2", latitude:"latitude2", longitude:"longitude2"),
                 LocationModel(name:"name3", address:"address3", latitude:"latitude3", longitude:"longitude3")]

for item in mapPoints {

   let name = item.name
   let latitude = item.latitude
   let longitude = item.longitude
   print(name, latitude, longitude)

}

如果地址属性可能丢失,请使用默认值声明初始值设定项并将空字符串视为无值

init(name: String, address: String = "", latitude: String, longitude: String) {...

关于ios - 循环以获取自定义 NSObject 类 swift 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38410464/

相关文章:

java - 将 2D 对象数组 JSON 反序列化为 Java

java - 读取文本文件并分割其内容 - 只能发布每一行?

ios - 如何检测 iPhone 是否刚刚连接到互联网?

Swift NSURLConnection 发送同步请求

swift - 获取 View 底部的 Y 坐标

iphone - 检测在 pagingEnabled UIScrollView 中显示的是哪个 UIView

cocoa-touch - 是否可以在不声明 IBOutlet 属性的情况下访问 IB 对象(例如 UILabel)?

ios - 字符串不是 () 的子类型

ios - 在哪里/什么时候设置 contentOffset?

javascript - 从javascript中括号之间的多个数组循环