代码之家  ›  专栏  ›  技术社区  ›  Andy Dewan

使用Swift将位置发布到iCloud数据库

  •  0
  • Andy Dewan  · 技术社区  · 9 年前

    我正在尝试将我的位置发布到iCloud数据库。我不断收到一个“预期声明”错误,我正在尝试修复,但不确定该怎么做。

    我的代码如下:

    CLGeocoder *geocoder = [CLGeocoder new]
    
    [geocoder geocodeAddressString:artwork[kArtworkAddressKey] completionHandler:^(NSArray *placemark, NSError *error){
        if (!error) {
            if (placemark.count > 0) {
                CLPlacemark *placement = placemark[0]
                artworkRecord[kArtworkLocationKey] = placement.location
            }   
        } else {
            // insert error handling here
        }
        // Save the record to the database  
    }]
    

    我是新手,如果这是一个简单的问题,请原谅。

    enter image description here

    1 回复  |  直到 9 年前
        1
  •  1
  •   Fogmeister    9 年前

    问题是您将Objective-C放入了Swift文件中。你可以这样翻译。。。

    目标-C

    CLGeocoder *geocoder = [CLGeocoder new]
    
    [geocoder geocodeAddressString:artwork[kArtworkAddressKey] completionHandler:^(NSArray *placemark, NSError *error){
        if (!error) {
            if (placemark.count > 0) {
                CLPlacemark *placement = placemark[0]
                artworkRecord[kArtworkLocationKey] = placement.location
            }   
        } else {
            // insert error handling here
        }
        // Save the record to the database  
    }]
    

    敏捷的

    let geocode = CLGeocoder()
    
    geocoder.geocodeAddressString(artwork[kArtworkAddressKey]) {
        placemark, error in
        if error {
            // handle error
        } else {
            if let placement = placemark[0] {
                self.artworkRecord[kArtWorkLocationKey] = placement.location
            }
        }
    }
    

    无论如何都是这样。