Создайте класс данных с помощью Swift в Watchkit Target

Поскольку простое использование метода sharedApplication() недоступно в WatchKit, использование AppDelegate в качестве способа хранения данных для всех моих интерфейсов/представлений больше не является вариантом в WatchKit. Есть ли альтернативный способ сделать это быстро для приложений WatchKit? Я попытался создать одноэлементный класс следующим образом:

import Foundation

import UIKit

class data: NSObject {
class var sharedInstance : data {
    struct Example {
        static let instance = data()
    }
    return Example.instance
}

var value:Int = 0
var increment:Int = 1

}

(Этот код взят из другого сообщения StackOverflow, я просто забыл ссылку.) Затем я пытаюсь получить доступ к «значению» Integer, вызвав data.value в контроллере интерфейса, но получаю сообщение об ошибке «data.Type» не имеет члена по имени «значение». Как я могу исправить эту ошибку? Или есть лучший способ сделать то, что я пытаюсь достичь?

Спасибо


person Alex Wulff    schedule 02.03.2015    source источник
comment
Попробуйте позвонить data.sharedInstance.value   -  person sbooth    schedule 03.03.2015


Ответы (1)


Код data.value пытается получить доступ к переменной или методу класса data с именем value. Поскольку такой переменной или метода не существует, вы получаете сообщение об ошибке.

В вашем определении value определяется как свойство класса data, поэтому для его использования вам нужен допустимый экземпляр data. Ваш метод sharedInstance предоставляет экземпляр.

Кроме того, в Swift принято писать имена классов с заглавной буквы, поэтому я рекомендую использовать Data.

person sbooth    schedule 03.03.2015
comment
Спасибо, отличное объяснение! - person Alex Wulff; 03.03.2015