Stanislav
Так откуда оно пропадает? Где код чтения изображения с диска?
пропадает с приложения после выгрузки этого приложения. А код чтения... блин..буду гуглить дальше)
Ivan
В смысле ты приложение закрыл или удалил с устройства? Что значит выгрузка?
Anonymous
да зачем гуглить. Прсто логику можно рассказать, и сделать по ней?
Anonymous
закрываю а потом запускаю заново
Ок... как картинка появляется в приложении в первый раз
Anonymous
?
Stanislav
Ок... как картинка появляется в приложении в первый раз
@IBAction func usePhotoButton(_ sender: UIButton) { let picker = UIImagePickerController() picker.sourceType = .camera self.present(picker, animated: true, completion: nil) picker.delegate = self
Anonymous
ну то есть ты выбрал руками. при втором запуске счегобы ему появиться, если ты руками не выбирал, и кода который будет читать с диска не написал?
Vladislavs
Stanislav
ну то есть ты выбрал руками. при втором запуске счегобы ему появиться, если ты руками не выбирал, и кода который будет читать с диска не написал?
это запись пути в документ директорию: func saveOneEuroCentImage() { //09.04.2017 // save localy let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) let path = paths.first let imageFolderPath = path?.appending("MyFBImages") if !FileManager.default.fileExists(atPath: imageFolderPath!){ do { try FileManager.default.createDirectory(atPath: imageFolderPath!, withIntermediateDirectories: true, attributes: [😏) } catch let error { print(error.localizedDescription) } } let imageFilePath = imageFolderPath?.appending("oneEuroCent.jpg") let imageData = UIImageJPEGRepresentation(UIImage(), 1) do { try imageData?.write(to: URL(fileURLWithPath: imageFilePath!)) } catch let error { print(error.localizedDescription) }
Stanislav
Надо, сам знаю!)
Stanislav
окей, чувак, ты записал. Он лежит у тебя на диске. С чегобы ему появиться в твоем приложении?
надо прописать путь откуда ему изображение достать с документ директории (ссылку)
Anonymous
ну с петум все ок - ты его знаешь.(ты ведь в него пишешь) Нужно просто попытаться прочитать и посмотреть, получилось ли, не нул ли. если да, то сделать UIImage из Data и этот имэдж положить в нужный аутлет
Vladislavs
Начни с программирования гуглить
Anonymous
просто вообще не понятно откуда появилась идея что писать - да, нужно, а читать не обязательно, оно само в приложении появится. Просто представь, что у тебя в каталоге 10 файлов. Какой из них должен оказаться в твоем приложении?
Vladislavs
А не с "как сделать приложение для айфона"
Vladislavs
Anonymous
Есть идея сделать подкаст, вот типа как Подлодка, или айФрикШоу, но такой... приземленный к простому народу. Чтобы там был например гороскоп для начинающих разработчиков, типа: — Овнам звезды советуют начать изучать вайпер. — У Рыб на этой неделе пройдет под знаком Реактива ну там и еще разные разделы. :)
Egor
можем добавить раздел
Vladislavs
Anonymous
"— увеличиваем монетизацию на 118% при помощи делегата" "— ЮзерДефаултс как альтернатива КорДате" "— Какими ухищрениями заставить пользователя дождаться выполнения вашего синхронного кода"
Jian Yang
а тут есть синтезатор или это твой естественный голос?)
Jian Yang
красивый голос, да? (:
угу не то что у меня, как вообще народ со мной иногда общается и не ржет я не знаю
Jian Yang
нуууу. Это как знать)
ну я бы точно начал бы угарать с чувака с голосом как у меня 😂 но чет у всех норм голос а у меня дурацкий
Stanislav
Палка о двух концах. Я учил в универе кучу сортировок, но по факту юзаю sortedArrayUsingComparator (ну или подобные), и могу лишь предположить, что под капотом там qsort. Клоню к тому, что чтобы ездить на машине, не всегда нужно знать устройство ДВС. Если подразумевается сугубо практическая направленность (Cook book) - будет отличный набор советов. А алгоритмы учить надо кмк не привязываясь к определенному языку
S
Всем привет, я попытался в rxobjc замультикастить rxobservable. Тоесть if (! self.observable) { self.observable= create; return self.observable;} else { return [self.observable publish].asObservable]; } но обсервер не мультикастится. Видимо я делаю что- то не так
Vladimir
Доброго времени! пытаюсь сохранить ImageView локально в .documentDirectory и в Firebase. В Firebase сохраняет и все гуд. А локально... в общем когда перегружаю риложение, изображение пропадает. Дайте рекомендации по решению. Заранее благодарю! Код ниже: import UIKit import Firebase import FirebaseStorage class PicturesOfCoinsViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { @IBAction func saveButton(_ sender: UIButton) { saveOneEuroCentImage() } @IBOutlet weak var oneEuroCentImage: UIImageView! @IBAction func usePhotoButton(_ sender: UIButton) { let picker = UIImagePickerController() picker.sourceType = .camera self.present(picker, animated: true, completion: nil) picker.delegate = self // picker.allowsEditing = true } func saveOneEuroCentImage() { //09.04.2017 // save localy let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) let path = paths.first let imageFolderPath = path?.appending("MyFBImages") if !FileManager.default.fileExists(atPath: imageFolderPath!){ do { try FileManager.default.createDirectory(atPath: imageFolderPath!, withIntermediateDirectories: true, attributes: [😏) } catch let error { print(error.localizedDescription) } } let imageFilePath = imageFolderPath?.appending("oneEuroCent.jpg") let imageData = UIImageJPEGRepresentation(UIImage(), 1) do { try imageData?.write(to: URL(fileURLWithPath: imageFilePath!)) } catch let error { print(error.localizedDescription) } // save to Firebase let storageRef = FIRStorage.storage().reference().child("userPictures/oneEuroCent.jpg") if let uploadData = UIImagePNGRepresentation(self.oneEuroCentImage.image!) { storageRef.put(uploadData, metadata: nil) {(metadata, error) in // storageRef.put(uploadData, metadata: nil, completion: { (metadata, error) in if error != nil { print(error) return } } } } override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { oneEuroCentImage.image = info[UIImagePickerControllerOriginalImage] as? UIImage picker.dismiss(animated: true, completion: nil) } }
Не нужно изображение сохранять в Firebase, только путь к нему. Логика простая: - читаешь загруженное пользователем изображение - сохраняешь (например в documents) - создаешь запись в firebase (imageKey: imagePath) - когда нужно прочитать изображение (убиваешь апп, открываешь заново), то находишь запись из firebase по imageKey и по imagePath вытаскиваешь картинку. * Note: не пытайся тестить это при запуске проекта через Xcode, посмотри что он отдаёт как путь к documents, он новый (разный id внутри пути) при каждом новом запуске (Build) проекта. * Note 2: Вынеси логику отвечающую за сохранение и чтение картинки в отдельный сервис. Также вынеси логику работы с базой данный в отдельный сервис. Почитай про Dependency Injection.
S
Может кто подскажет по поводу мультикастов?
S
if (!self.observable) { self.observable = [RxObservable create:^id<RxDisposable> _Nonnull(RxAnyObserver * _Nonnull o) { NSLog(@"create"); NSURLSessionDataTask *dataTask = [httpManager GET:remote parameters:parameters success:^(NSURLSessionDataTask * _Nonnull task, NSDictionary * _Nonnull responseObject) { NSLog(@"onNext"); [o onNext:container]; [o onCompleted]; } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { [o onError:error]; }]; return [RxAnonymousDisposable create:^{ [dataTask cancel]; }]; }]; } return [self.observable share]; RxObservable<RRFExercisesSizeContainer *> *returnObservable = [self.observable publish].asObservable; [returnObservable connect]; return returnObservable;
S
Из того что я понял return [self.observable share]; должен шарить self.observable то есть вне зависимости от сабскрайберов NSLog(@"create"); должен вызываться только 1 раз.
S
Или я не прав ?
Jian Yang
Или я не прав ?
A что rxswift работает и на обжС?)
S
ну есть приблуда одна.
S
rxObjc
Jian Yang
rxObjc
https://github.com/pasha010/RxObjC
Jian Yang
Вот эта?)
S
Да
Jian Yang
Мдя рейтинг зашкаливает)
S
Не смешно )
Ivan
Code coverage 89% - отписка
Igor
Попробуй reactive cocoa)
Igor
Может кто подскажет по поводу мультикастов?
S
В реактив все просто )
Igor
так в
Igor
в этом и смысл
Paks
Detected missing constraints for <_NSSplitViewItemViewWrapper: 0x6000001a1500> Как вычислить ошибку? сториборд не гооврит ничего плохого. в сплитвью контроллере там некуда вообще добавлять констрейнты...
Paks
Paks
это значит: фиг с этой инфы чего можно вытянуть?)
Maksim
Ну нужно проект смотреть ))))
Paks
та он пустой)
Paks
сплит вью и 2 вьюхи 1 с таблицей и все)
Maksim
ну скидывай тогда )))
Paks
для таблицы 4 констрейнта, по краям с значением 0, что бы по размером вью тянулась)
Paks
Maksim
https://ind.ie/labs/blog/nssplitviewcontroller-auto-layout-bug-and-workaround/
Maksim
может оно?
Paks
не спасло :) но описание забавное костыля)
Jian Yang
не спасло :) но описание забавное костыля)
В своих видеоуроках покажешь ну или на стриме
Jian Yang
😂🤣😂🤣
Anonymous
подскажите, пожалуйста, есть ли библиотеки для мокированяи объектов для тестов на swift ?
Paks
походу баг какой-то. вопросов на стеке дофига, а ответов ноль..
Anonymous
тесты смотрю особо никто не пишет 😊
Paks
таким не хвастаются... 😄
Jian Yang
Азазаза