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

Долго компилится - Swift

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Swift Создание календаря http://www.cyberforum.ru/swift/thread1639815.html
Добрый день, хочу написать программу в которой на главной странице будет календарь(пусть даже только по месячный) и при нажатии на любое число переходило и делало что мне уже нужно, проблема в том, что я никак не могу найти достойный гайд по тому как сделать простейший календарь, потому что как я понял готовых решений Apple не предоставляет. Нашел фреймворк (SwiftDate), но не смог нагуглить как...
Swift Добавить в Центр уведомлений часть сайта Здравствуйте, подскажите как можно реализовать кусок сайта в Центре уведомления. http://www.cyberforum.ru/swift/thread1637882.html
Thread 1 EXC_BAD_instruction Swift
Помогите пожалуйста, никак не могу понять как исправить. Вылезает ошибка Thread 1: EXC_BAD_INSRTUCTION(code=EXC_I386_INVOP, subcode=0x0) Вылезает на строчке class Menu : SKScene {} Вот весь код import UIKit
Swift Акселерометр
Здравствуйте, нужно что бы imageview наклонялось в зависимости от наклона устройства. Допустим устройство наклонилось вправо и imageview тоже должен наклониться вправо. Никак не могу найти как это сделать. Подскажите, пожалуйста, как сделать или где почитать про это.
Swift UISimpleTextPrintFormatter http://www.cyberforum.ru/swift/thread1632889.html
добрый день! Я создала pdf файл из 3 листов из jpg файлов. Пытаюсь теперь добавить текст UISimpleTextPrintFormatter на каждый лист Вот код : class PrintPageRenderer: UIPrintPageRenderer { let authorName: NSString let data: Data
Swift Обработка события onClose SocketServer Добрый день, хочу использовать в приложении сокет-соединение (сервер написан на python), нашел вот такое решение: https://github.com/swiftsocket/SwiftSocket, все работает корректно, но там нет такого события, как закрытие сервера, допустим обрыв соединения с сервером - клиент ничего не узнает. Как можно добавить событие onClose? подробнее

Показать сообщение отдельно
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
20.01.2016, 16:24
Цитата Сообщение от RafDev Посмотреть сообщение
На сколько сложно вытащить данные из plist из опубликованного приложения?
В каком виде он хранится? И что вообще там с ним происходит?
А зачем вам CoreData, если вы используете .plist ? Это разный подход к data persistence. В первом случае - чудовищно мощный функционал СУБД, во втором - ресурсосберегающее файловое хранение в XML-файле, всё компактно и шустро.

Работать с .plist можно напрямую из VC, без CoreData. Например пишем во ViewController:

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
func documentsDirectory() -> String {
        let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
        return paths[0]
    }
    
    func dataFilePath() -> String {
        return(documentsDirectory() as NSString).stringByAppendingPathComponent("ИмяФайлаНаВашВкус.plist")
    }
 
func saveЧтоНибудьНужное () {
        let data = NSMutableData()
        let archiver = NSKeyedArchiver(forWritingWithMutableData: data) // NSKeyedArchiver - разновидность NSCoder, инструмент для записи/чтения из файла
        archiver.encodeObject(lists, forKey: "ИмяКлюча")
        archiver.finishEncoding()
        data.writeToFile(dataFilePath(), atomically: true)
    }
    
    func loadЧтоНибудьНужное() {
        let path = dataFilePath()
        if NSFileManager.defaultManager().fileExistsAtPath(path) {
            if let data = NSData(contentsOfFile: path) {
                let unarchiver = NSKeyedUnarchiver(forReadingWithData: data)
                lists = unarchiver.decodeObjectForKey("ИмяКлюча") as! [ТипОбъекта]
                unarchiver.finishDecoding()
            }
        }
    }
Нужно реализовать в классе "ТипОбъекта" (обычный .swift файл, в котором вы Data Model прописываете) методы протокола NSCoding -
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
    required init?(coder aDecoder: NSCoder){
        aDecoder.decodeObjectForKey("ПеременнаяКласса1") as! ТипПеременной1
        aDecoder.decodeObjectForKey("ПеременнаяКласса2") as! ТипПеременной2 
        и тд для каждой переменной класса
        super.init()
    }
    
    func encodeWithCoder(aCoder: NSCoder) {
        aCoder.encodeObject(name, forKey: "ПеременнаяКласса1")
        aCoder.encodeObject(items, forKey: "ПеременнаяКласса2")
        и тд 
    }
Добавьте в первый ViewController такой инициализатор:
Objective-C
1
2
3
4
5
required init? (coder aDecoder: NSCoder) {
            тут какие-то полезные манипуляции с данными 
        super.init(coder: aDecoder)
        loadЧтоНибудьНужное() 
    }
И всё, данные сохраняются локально в .plist файл, только в дебаггере надо отследить path, куда его Xcode плюхнет. Надеюсь, поможет улучшить быстродействие.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru