2016-03-29 7 views
0

私は、マップ上のボタンを使って追加することができるテーブルビューの場所を示すアプリケーションを持っています。私はこれらを保存するのに問題があります(はい、私はそれが廃止されていることを知っていますが、私は正確に同じように動作する新しいサーバーを設定して解析することを考慮してください)また、この件名:https://stackoverflow.com/questions/30435362/how-can-i-send-coordinates-to-parse-and-save-it-as-parse-pfgeopoinそれはまだので、ここで私は混乱している非常に単純に私のコードは私のテーブルビュー場所(ピン)を解析サーバーに保存するにはどうすればよいですか?

var places = [Dictionary<String,String>()] 

var activePlace = -1 

をしており、ここでその広告コードです(マップビューコントローラ内の)ピン

@IBAction func addSpot(sender: UIBarButtonItem) { 


     var newCoordinate2 = self.map.userLocation.location!.coordinate; 

     var location = CLLocation(latitude: newCoordinate2.latitude, longitude: newCoordinate2.longitude) 

     //title = "new address" 

     //try change order start 

     let annotation = MKPointAnnotation() 

     self.map.addAnnotation(annotation) 

     annotation.coordinate = newCoordinate2 

     annotation.title = title 


     annotation.coordinate = self.map.userLocation.location!.coordinate; 

     CLGeocoder().reverseGeocodeLocation(location) { (placemarks, error) -> Void in 


      var title = "" 

      if (error == nil) { 

       if let p = placemarks?[0] { 

        var subThouroughfare:String = "" 
        var thouroughfare:String = "" 

        if p.subThoroughfare != nil { 

         subThouroughfare = p.subThoroughfare! 

        } 

        if p.thoroughfare != nil { 

         thouroughfare = p.thoroughfare! 

        } 

        title = "\(subThouroughfare) \(thouroughfare)" 


       } 

      } 

      if title == "" { 

       title = "Added \(NSDate())" 

      } 

      places.append(["name":title,"lat":"\(newCoordinate2.latitude)","lon":"\(newCoordinate2.longitude)"]) 

      let annotation = MKPointAnnotation() 

      annotation.coordinate = newCoordinate2 

      annotation.title = title 

      self.map.addAnnotation(annotation) 

     } 

     self.map.addAnnotation(annotation); 





     func mapView(mapView: MKMapView!, 
        viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView!{ 
      if(annotation is MKUserLocation){ 
       return nil; 
      } 

      // let pinView: Void = mapView.addAnnotation(annotation); 
      let pinAnnotationView = MKPinAnnotationView(annotation: annotation,reuseIdentifier:"MyIdentifier"); 
      return pinAnnotationView; 


     } 



    } 

としてご協力いただきありがとうございます私は構文解析/外部サーバーを使用するのが初めてです

編集:私はこの試みた:

PFObject["geoPoint"] = PFGeoPoint(location: location) 

    location[location] = activePlace 
    location.saveInBackgroundWithBlock { (succes, error) -> Void in 
     print("place has been saved") 
    } 

Iは三行 1)インスタンスメンバー「添字は」タイプでは使用できません「PFObject」 2)タイプ「CLLocation」上の誤差が出る無添字部材を有していない 3 )タイプCLLocationの値がまったくメンバーのsaveInBackgroundWithBlock "

REのEDITました:私はこれを試していないと警告が言っGET「復帰後のコードが実行されることはありません」も、それはアプリ上で実行されますが

を保存しません。
let geoPoint = PFObject(className: "location") 

    geoPoint["location"] = activePlace 
    geoPoint.saveInBackgroundWithBlock { (succes, error) -> Void in 
     print("place has been saved") 
    } 
+0

あなたのコードが間違っていることを説明していません – Wain

+0

これは間違っているのではありませんが、解析するためにアップロードされていません。私はちょうど私があなたの場所/各場所を保持するPFObjectを定義した@Wain –

+0

を解析する必要がある場所を追加する方法を知りませんか? – Wain

答えて

1

あなたはPFGeoPointを入れるものが必要で、そのものはPFObjectである必要があります。解析バックエンドでは、このオブジェクトのテーブルを作成し、geoPointなどの参照を使用して設定できます。今度はテーブルのクラス名で新しいポイントごとにPFObjectをインスタンス化し、参照をgeoPoint()に設定して保存します(pfObject.saveInBackgroundWithBlock...)。これで完了です。

+0

編集された質問)それは動作していないようですが、私はあなたが意味するものを正確にはしなかったと確信しています –

+0

'PFObject'インスタンスと' PFGeoPoint'インスタンスは異なります。 'PFObject'は' PFGeoPoint'が格納されている所有者とコンテナです。あなたはそれらを同じものにしようとしましたが、うまくいきません。 – Wain

+0

私はもう一度質問を編集しましたが、今回は「復帰後のコードは実行されません」という警告が表示され、保存されませんが、 –

関連する問題