Я использовал тандем Project от Apple WWDC 2017 - 237 «Что нового в Mapkit».
Уже существует data.plist с массивом с именем bikes и дополнительными словарями с четырьмя элементами (ключ: значения -Pairs).
- item 0 = Dictionary-Nr (несколько аннотаций)от 0, 1, 2 ...)
- item = "ключ" lat для геоданных со значением "value" типа данных "number"
- item = "key" long длядолгота геоданных, как указано выше
- type = "key" 0 (перечисление определено в Class Bike) для tintColor и glyphImages для различных аннотаций, объявленных в bikeView.swift.
Следующий пример отлично работает:
Показывает data.plist:
-> Root - dictionary
-> bikes - array
-> item 0 - dictionary (Annotation Nr. 1)
-> lat - number 50.12345 (latitude of Annotation Nr.1
-> long - number 6.12345 (longitude of Annot. Nr. 1)
-> type - number 1 (two different 0 or 1)
Вот код, который читает словарь элемент 0, элемент 1 ...:
// Class bike.swift
import MapKit
class Bike: MKPointAnnotation {
enum BikeType: Int {
case unicycle
case bicycle
}
var type: BikeType = .tricycle
func bikes(fromDictionaries dictionaries: [[String: NSNumber]]) -> [Museum] {
let bikes = dictionaries.map { item -> Bike in
let bike = Bike()
bike.coordinate = CLLocationCoordinate2DMake(item["lat"]!.doubleValue, item["long"]!.doubleValue)
bike.type = BikeType(rawValue: item["type"]!.intValue)!
return bike
}
return bike
}
}
Я хочу реализовать пятый и шестой (ключ) с именами "title" и "subtitle" (со значениями String каждый) в Словаре data.plist (с именем item 0), например:
title = "foo" subtitle = "bar"