-3
これはvar var types: [String]?
です。ここで私はこのエラーが発生しますmyLabel3.text = place.types
どうすれば調整できますか?私は他の同様の質問を見たが、私の問題と同じものは見つけられなかった。'[String]型の値を割り当てることができません。タイプするには 'String?'
import UIKit
import CoreLocation
private let geometryKey = "geometry"
private let locationKey = "location"
private let latitudeKey = "lat"
private let longitudeKey = "lng"
private let nameKey = "name"
private let openingHoursKey = "opening_hours"
private let openNowKey = "open_now"
private let vicinityKey = "vicinity"
private let typesKey = "types"
private let photosKey = "photos"
class QPlace: NSObject {
var location: CLLocationCoordinate2D?
var name: String?
var photos: [QPhoto]?
var vicinity: String?
var isOpen: Bool?
var types: [String]?
init(placeInfo:[String: Any]) {
// coordinates
if let g = placeInfo[geometryKey] as? [String:Any] {
if let l = g[locationKey] as? [String:Double] {
if let lat = l[latitudeKey], let lng = l[longitudeKey] {
location = CLLocationCoordinate2D.init(latitude: lat, longitude: lng)
}
}
}
// name
name = placeInfo[nameKey] as? String
// opening hours
if let oh = placeInfo[openingHoursKey] as? [String:Any] {
if let on = oh[openNowKey] as? Bool {
isOpen = on
}
}
// vicinity
vicinity = placeInfo[vicinityKey] as? String
// types
types = placeInfo[typesKey] as? [String]
// photos
photos = [QPhoto]()
if let ps = placeInfo[photosKey] as? [[String:Any]] {
for p in ps {
photos?.append(QPhoto.init(photoInfo: p))
}
}
}
これは場所のクラスであり、これは私が
func update(place:QPlace) {
myLabel.text = place.getDescription()
myImage.image = nil
myLabel2.text = place.vicinity
myLabel3.text = place.types
あなたは文字列を受け取るプロパティを標識する文字列配列を追加していますか? – tbilopavlovic
もっと明確にするつもりを詳しく教えてください。あなたの質問では、型は文字列配列だと仮定しますが、place.typesとは何かが明確ではありません。 – Jeet
エラーメッセージをよくお読みください。 '[String]'はコレクション型(配列)であり、 'String'は単一のオブジェクトです。スウィフトの強いタイプのシステムは、この種の不一致をサポートしていません。配列を平坦化するか指定する1つの特定の項目を選択する必要があります – vadian