首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 2/ Xcode 7.2和Swift 1.2 / Xcode 6.3中的MapKit冲突

Swift 2/ Xcode 7.2和Swift 1.2 / Xcode 6.3中的MapKit冲突
EN

Stack Overflow用户
提问于 2016-01-21 20:01:37
回答 1查看 135关注 0票数 0

我正在使用MapKit http://www.raywenderlich.com/90971/introduction-mapkit-swift-tutorial的教程

它是使用Swift 1.2和Xcode 6.3讲授的。然而,在我的项目中,我遇到了一些错误。下面的代码直接来自本教程

我已经在下面标记为(A)和(B)的代码中列出了相关的行。有关错误如下:

(A) ‘缺失参数标签’rawValue‘。在调用中-添加rawValue参数标签没有帮助。

(B)调用中的额外参数“错误”-删除“错误”参数没有帮助

代码语言:javascript
复制
import UIKit
import MapKit

class ViewController: UIViewController {

    @IBOutlet weak var mapView: MKMapView!
    var artworks = [Artwork]()
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let initialLocation = CLLocation(latitude: 21.282778, longitude: -157.829444)
        centerLocationOnMap(initialLocation)

        mapView.delegate = self

        // show artwork on map
        let artwork = Artwork(title: "King David Kalakaua",
            locationName: "Waikiki Gateway Park",
            discipline: "Sculpture",
            coordinate: CLLocationCoordinate2D(latitude: 21.283921, longitude: -157.831661)
        )

        mapView.addAnnotation(artwork)

    }

    let regionRadius: CLLocationDistance = 1000;
    func centerLocationOnMap(location: CLLocation) {
        let regionCoordinates = MKCoordinateRegionMakeWithDistance(location.coordinate, regionRadius * 2.0, regionRadius * 2.0)
        mapView.setRegion(regionCoordinates, animated: true)
    }


func loadInitialData() {

  let fileName = NSBundle.mainBundle().pathForResource("PublicArt", ofType: "json");
  var readError : NSError?

(A)

代码语言:javascript
复制
  var data: NSData = NSData(contentsOfFile: fileName!, options: NSDataReadingOptions(0), error: &readError)!
  var error: NSError?

(B)

代码语言:javascript
复制
let jsonObject: AnyObject! = NSJSONSerialization.JSONObjectWithData(data, 
    options: NSJSONReadingOptions(0), error: &error)

代码语言:javascript
复制
  if let jsonObject = jsonObject as? [String: AnyObject] where error == nil,
  let jsonData = JSONValue.fromObject(jsonObject)?["data"]?.array {
    for artworkJSON in jsonData {
      if let artworkJSON = artworkJSON.array,
      // 5
      artwork = Artwork.fromJSON(artworkJSON) {
        artworks.append(artwork)
      }
    }
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-21 20:17:07

您可以查看NSData和NSJSONSerialization苹果文档中的方法签名更改

在调用函数之前,必须删除错误参数并使用try。

对于选项,您可以将[] ->无选项

代码语言:javascript
复制
try NSData(contentsOfFile: fileName!, options: [])

try NSJSONSerialization.

请参阅Correct handling of NSJSONSerialization (try catch) in Swift (2.0)?

并且您必须使用do { And代码} catch {And}捕获错误,或者只是为了测试目的使用try!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34933212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档