2017-10-30 18 views
-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  
+0

あなたは文字列を受け取るプロパティを標識する文字列配列を追加していますか? – tbilopavlovic

+0

もっと明確にするつもりを詳しく教えてください。あなたの質問では、型は文字列配列だと仮定しますが、place.typesとは何かが明確ではありません。 – Jeet

+0

エラーメッセージをよくお読みください。 '[String]'はコレクション型(配列)であり、 'String'は単一のオブジェクトです。スウィフトの強いタイプのシステムは、この種の不一致をサポートしていません。配列を平坦化するか指定する1つの特定の項目を選択する必要があります – vadian

答えて

0

var types: [String]?Stringのオプションの配列であることを追加したい私のcustomTableViewCellのFUNCです。 myLabel3.textの値はオプションでString、またはString?です。

あなたは例えば、配列から値を取得したり、ラベルテキストを設定するために値に参加する必要があります。

myLabel3.text = place.types?.joined() 
関連する問題