2015-12-17 4 views
3

Я создаю приложение iPhone с помощью Swift. Я создал класс Settings и объявлял в них какие-то статические переменные для хранения цветов. Однако, когда я пытаюсь получить доступ к первой переменной, которую я объявил (например, Settings.grayBorderColor ниже), приложение вылетает (с некоторым сообщением о Settings.grayBorderColor.unsafeMutableAddressor). Я могу получить доступ к любым свойствам, расположенным ниже первого, просто отлично, и если я переключу порядок свойств/переменных, он по-прежнему будет обращаться к тому, какое свойство объявлено первым, что приводит к сбою.Ошибка приложения при доступе к первой статической переменной в классе

class Settings { 

    // MARK: Properties 

    static let grayBorderColor = UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.0) 
    static let lightGreenColor = UIColor(red: 0.66, green: 1.0, blue: 0.66, alpha: 1.0) 
    static let darkGreenColor = UIColor(red: 0.66, green: 0.0, blue: 0.0, alpha: 1.0) 
    static let darkRedColor = UIColor(red: 0.66, green: 0.0, blue: 0.0, alpha: 1.0) 
    static let lightRedColor = UIColor(red: 1, green: 0.66, blue: 0.66, alpha: 1.0) 
    static let lightGrayColor = UIColor.lightGrayColor() 
    static let mediumGrayColor = UIColor.darkGrayColor() 

} 

Что я делаю неправильно?

+0

Можете ли вы попытаться переименовать первый? – Khuong

+0

Он по-прежнему падает, если я его переименую. Я имел в виду, что если, например, я изменяю darkGreenColor на первое свойство variable /, то Settings.darkGreenColor вызывает сбой вместо настроек.grayBorderColor. Кажется, что любое свойство сначала всегда сбой. –

+0

Возможно, это ошибка в Xcode, ваш код в порядке. – Khuong

ответ

-1

Измените код следующим образом:

class Settings { 

    // MARK: Properties 

    static let grayBorderColor: UIColor! = UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.0) 
    static let lightGreenColor: UIColor! = UIColor(red: 0.66, green: 1.0, blue: 0.66, alpha: 1.0) 
    static let darkGreenColor: UIColor! = UIColor(red: 0.66, green: 0.0, blue: 0.0, alpha: 1.0) 
    static let darkRedColor: UIColor! = UIColor(red: 0.66, green: 0.0, blue: 0.0, alpha: 1.0) 
    static let lightRedColor: UIColor! = UIColor(red: 1, green: 0.66, blue: 0.66, alpha: 1.0) 
    static let lightGrayColor: UIColor! = UIColor.lightGrayColor() 
    static let mediumGrayColor: UIColor! = UIColor.darkGrayColor() 

} 

Вы отсутствовали типы недвижимости. Как указано в документации, вычисленные свойства должны иметь спецификатор типа.

+0

Пробовал это, но он все равно рушится так же, к сожалению ... –

+0

Вы пытались изменить let to var? –

+0

Просто попробовал ... все еще разбился! –