arrays - 无法强制将“[String]”类型的值转换为“NSString”类型
问题描述
我有一个输出字符串:
LATITUDE = [String]()
LATITUDE = ["41.87194", "33.4941704", "46.8796822", "31.9685988", "45.253783"]
var custlatt = (LATITUDE as NSString).doubleValue
我正在尝试将纬度坐标插入到下面的代码中:
var markerDict: [Int: GMSMarker] = [:]
for i in 0...(POST_COUNT - 1){
markerDict[i] = GMSMarker()
markerDict[i]?.position = CLLocationCoordinate2D(latitude:custlatt[i], longitude: custlong[i])
markerDict[i]?.title = ""
markerDict[i]?.icon = UIImage(named: "Pin Red Small")
markerDict[i]?.snippet = ""
markerDict[i]?.map = mapView
对于 var custlatt,我收到错误“无法将类型 '[String]' 的值转换为强制类型的 'NSString'”
非常感谢任何帮助,我是 swift 新手,我已经被困了很长一段时间。提前致谢!
解决方案
您需要在 for 循环内进行强制转换,您不能将 anArray<String>
转换为NSString
.
此外,不应通过将 a 转换String
为 a ,而应通过初始化程序。Double
NSString
Double
您还应该遵守 Swift 命名约定,即变量名称的 lowerCamelCase。
let latitudes = ["41.87194", "33.4941704", "46.8796822", "31.9685988", "45.253783"].compactMap { Double($0) }
let longitudes = ["42", "33", "23", "45", "6"].compactMap { Double($0) }
var markerDict: [Int: GMSMarker] = [:]
for i in 0..<postCount {
let marker = GMSMarker()
market = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude:latitudes[i], longitude: longitudes[i])
marker.title = ""
marker.icon = UIImage(named: "Pin Red Small")
marker.snippet = ""
marker.map = mapView
markerDict[i] = marker
}
推荐阅读
- ios - 如何在 Swift IOS 中实现左右滑动以更改数据/视图?
- oauth-2.0 - IdentityServer4 中的租户广泛同意
- duplicates - Python\\如何找出3个文件中的重复元素
- python - Python 列表理解计数出现次数
- python - 减少 django modelform 中的重复查询
- javascript - 在反应渲染函数中循环不可变js映射对象
- python - 用前几行的平均值填充 Null 值
- react-hooks - 使用 useState 在 React 组件之间传递值
- javascript - Javascript 解析错误:意外错误
- node.js - 尽管使用 done,Mocha 在 Before 钩子中调用异步承诺链超时