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

Objective-C

Войти
Регистрация
Восстановить пароль
 
paparotnik
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 60
#1

Работа с большими файламив Dropbox - Objective-C

24.09.2013, 17:24. Просмотров 683. Ответов 9
Метки нет (Все метки)

Всем привет, пытаюсь оперировать большими файлами используя Sync API для iOS
Моя программа шифрует файлы в режиме stream, и я записываю шифрованные части (по ~320000 bytes) методом
[file appendData:data error:nil];
file - переменная формата DBFile
Когда размеры файла доходят до 80 мб программа вылетает и не выдает ошибки
По ходу выполнения программы выдаются ошибки recieve memory warning, хотя переменные дополнительно никакие не используются

Какие есть способы управления большими файлами для dropbox апи для ios? или в чем моя ошибка?
И есть ли аналог метода [file appendData:data error:nil]; только для скачивания файла?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2013, 17:24     Работа с большими файламив Dropbox
Посмотрите здесь:

C# ASP.NET работа c dropbox
Objective-C Работа с большими файлами + шифрование

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
24.09.2013, 20:57     Работа с большими файламив Dropbox #2
Ну так пишите сразу на диск.
Зачем в памяти держать?
Используйте класс NSFileHandle.
paparotnik
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 60
25.09.2013, 12:45  [ТС]     Работа с большими файламив Dropbox #3
При помощи FileHandler можно сохранить данные на диск так же, как и при помощи NSData? я просто не вижу там метода для сохранения в локальную директорию

Можете объяснить логику: у меня есть файл, я беру у него FileHandler, это означает что я беру информацию о нем? а что происходит с остальным файлом?

У меня же есть только объект с типом dropbox sdk DBFile, оттуда можно вытащить handler тоже, но я не понимаю, как с помощью него закачать файл сразу на диск, не используя при этом переменную. В режиме стрима я понял как записывать только, там специальный метод, а для скачивания похожего метода нет
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
25.09.2013, 14:19     Работа с большими файламив Dropbox #4
Цитата Сообщение от paparotnik Посмотреть сообщение
я просто не вижу там метода для сохранения в локальную директорию
- (void)writeDataNSData *)data;
затем
- (void)synchronizeFile;

Цитата Сообщение от paparotnik Посмотреть сообщение
Можете объяснить логику: у меня есть файл, я беру у него FileHandler, это означает что я беру информацию о нем? а что происходит с остальным файлом?
Ни у чего вы не берете FileHandler. Это класс - обвязка для того, чтобы высокоуровнево работать с файлом(запись, чтение, поиск).
Что значит с остальным файлом?
Цитата Сообщение от paparotnik Посмотреть сообщение
У меня же есть только объект с типом dropbox sdk DBFile, оттуда можно вытащить handler тоже, но я не понимаю, как с помощью него закачать файл сразу на диск, не используя при этом переменную. В режиме стрима я понял как записывать только, там специальный метод, а для скачивания похожего метода нет
Что такое DBFile?
Какой handler?
как с помощью него закачать файл сразу на диск
Приходит часть данных, дописали к своему файлу, ждете следующую часть.
paparotnik
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 60
25.09.2013, 17:39  [ТС]     Работа с большими файламив Dropbox #5
Я имею ввиду sdk dropbox sync for ios, изначально вопрос я задал и там написал, что отталкиваюсь от него.

Решил проблему с чтением, теперь проблема в том, что запись по частям на дропбокс не работает при больших объемах, то бишь допустим два раза по 40мб дописывает в файл и падает на третьем разе
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
25.09.2013, 20:20     Работа с большими файламив Dropbox #6
Цитата Сообщение от paparotnik Посмотреть сообщение
то бишь допустим два раза по 40мб дописывает в файл и падает на третьем разе
Если вы "предыдущие" 2 раза память чистили - ничего упасть не должно было.
Если время позволит - доберусь до Dropbox SDK снова, посмотрю как там. У меня таких проблем с его использованием не было.
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
25.09.2013, 22:50     Работа с большими файламив Dropbox #7
Цитата Сообщение от paparotnik Посмотреть сообщение
два раза по 40мб дописывает в файл и падает на третьем разе
В файл? Или опять в NSData?
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
26.09.2013, 06:24     Работа с большими файламив Dropbox #8
Цитата Сообщение от paparotnik Посмотреть сообщение
падает на третьем разе
Вы кстати хоть бы написали что в крэшлогах было, показали код... А то как будто тут общество анонимных шаманов :/
paparotnik
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 60
30.09.2013, 17:52  [ТС]     Работа с большими файламив Dropbox #9
Так ничего не пишет в креш логах, просто вылетает и все, может дело в том что девайс первый айпад
По итогу из временной папки выгружаю разом на дропбокс
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
01.10.2013, 08:01     Работа с большими файламив Dropbox #10
Цитата Сообщение от paparotnik Посмотреть сообщение
Так ничего не пишет в креш логах, просто вылетает и все, может дело в том что девайс первый айпад
По итогу из временной папки выгружаю разом на дропбокс
По памяти оно так и вылетает. Говорю же, пишите на диск, не в память. В чем проблема то?
Yandex
Объявления
01.10.2013, 08:01     Работа с большими файламив Dropbox
Ответ Создать тему
Опции темы

Текущее время: 21:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru