СЛОВАРЬ MapPL .PLIST с INT и STRING-значениями = множественные аннотации с заголовком и субтитрами из plist (согласно: MapKit Sample WWDC 2017 - 237) - PullRequest
0 голосов
/ 24 декабря 2018

Я использовал тандем Project от Apple WWDC 2017 - 237 «Что нового в Mapkit».

Уже существует data.plist с массивом с именем bikes и дополнительными словарями с четырьмя элементами (ключ: значения -Pairs).

  1. item 0 = Dictionary-Nr (несколько аннотаций)от 0, 1, 2 ...)
  2. item = "ключ" lat для геоданных со значением "value" типа данных "number"
  3. item = "key" long длядолгота геоданных, как указано выше
  4. 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"

1 Ответ

0 голосов
/ 26 декабря 2018

Добавьте следующее свойство в bike.swift

var title: String?
var subtitle: String?

Реализуйте пятый и шестой (ключ) с именами "title" и "subtitle" (со значениями String каждый) в data.plist

enter image description here

Запустить Tandm.project

enter image description here

...