Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Реализация паттернов - Swift

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Swift Импортирование функции из object-c http://www.cyberforum.ru/swift/thread1299541.html
Коллеги может кто уже сталкивался с проблемой! Я вообще новенький в разработке под ios и вообще под мобильные платформы! Вообще программирую на python. И мне необходимо импортнуть функцию из header...
Swift Swift compiler error Command failed due to signal: Bus error: 10 Mavericks 10.9.5, VMWare 10.0.3, xCode 6.0.1 (вообще перепробовал все выпуски, в том числе и 6.1 6А1052d от 22 октября 2014).При запуске компилятора, даже на только созданном пустом "new project",... http://www.cyberforum.ru/swift/thread1285999.html
Массив Swift Swift
Есть кусок кода Swift в Xcode: var pageData = NSArray() override init() { super.init() // Create the data model. let dateFormatter = NSDateFormatter() ...
Потоки в Swift Swift
В общем, решил поковырять свифт на выходных и выяснил, что не могу нормально создавать потоки. То есть создать-то я их могу, а вот полноценно ими пользоваться - нет. Я выяснил, что за потоки отвечает...
Swift Представление изображения в памяти. Как? http://www.cyberforum.ru/swift/thread1281278.html
Привет всем! Понимаю, что по этому вопросу меня отошлют в другие ветки, например СИ, но всё же. Вопрос такой: Что такое изображение в C++/Swift? Поясню свой вопрос. С изображениями в...
Swift Как из session.dataTaskWithRequest вернуть ответ в основной код Помогите вернуть ответ сервера в основной код var accessToken: String! @IBAction func sendData(sender: UIButton) { var request = NSMutableURLRequest(URL: NSURL(string:... подробнее

Показать сообщение отдельно
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
26.11.2014, 04:37
Вот еще как вариант, если мы примерно знаем, что особо замудренной логики не будет, а, например как у того парня на гитхабе в примере с валютой, то можно сделать так:
Это, конечно, уже не фабричный метод, но новый язык открывает новые возможности и при чем достаточно удобные и гибкие
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
protocol Product {
    var name: String { get }
}
 
enum ConcreteProduct: Product {
    case ProductA, ProductB, ProductC
    
    var name: String {
        switch self {
            case .ProductA: return "ProductA"
            case .ProductB: return "ProductB"
            case .ProductC: return "ProductC"
        }
    }
}
 
let products = [ConcreteProduct.ProductA, ConcreteProduct.ProductB]
for product in products {
    println(product.name)
}
Поскольку enum ведет себя, как обычный тип, можно создавать такие несложные конструкции, но вести они себя будут по-прежнему как обычные переменные и тип их может полностью определятся протоколом, который они имплементируют, потому в самом коде ничего не поменяется, если вы даже в будущем измените enum на class, ведь параметром в метод или конструктор приходит все та же переменная все того же типа Product

P.S. еще немного синтаксического сахара: если у вас определяется только геттер проперти, то можно опустить обворачивание тела в prop { get {} }, а писать сразу prop { }
и еще есть прикольная штука, когда можно опустить return, но это походу только в колбеках с одной операцией, типа array.map { $0 + "moo" }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru