Как реализовать импорт / экспорт файлов в приложение? - PullRequest
0 голосов
/ 08 февраля 2011

мои цели (это для целей обучения):

  1. Пользователь может создавать (50% СДЕЛАНО) / редактировать / удалять / просматривать созданный тест!
  2. Тест имеет имя, имя, тип, ... (DONE) и массив с такими объектами: @ "Question: Answer"
  3. пользователь должен иметь возможность экспортировать / импортироватьодин или несколько тестов через вложения электронной почты!однако до сих пор я пришел:

класс теста: .h

   @interface quiz : NSObject {
        NSString *title, *description, *type ....;
        NSArray *words;

    }

    @property(nonatomic,retain)NSString *title, *description, *type ... ;
    @property(nonatomic,retain)NSArray *words;
    @end

Я даю всю необходимую информацию:

quiz *newquiz = [[quiz alloc] init];
        newquiz.title = exName.text;
        newquiz.description = myDesc;
        newquiz.type = myType;
            newquiz.array = wordsArray;
        ....

хорошо, сейчасУ меня есть NSObject.Теперь я не знаю, что делать?Может ли кто-нибудь объяснить мне несколько простых и понятных шагов, которые я должен сделать для достижения своих целей?

мои мысли о том, что делать дальше:

  1. Мне нужно хранить NSobject локально.возможно напишите toFile: @ "filename.obj".Я понятия не имею, как это реализовать!

1 Ответ

1 голос
/ 08 февраля 2011

Не совсем уверен, что ваш вопрос, в вашем фрагменте есть примерно 10 вопросов. Но единственное, что может быть трудным, - это импортировать / экспортировать что-то, так что я могу помочь с этим.

Зависит от системы, которую вы используете. В джейлбрейкнутом сообществе вы можете получить доступ к файлам за пределами своей песочницы ... в угнетенном мире стоковых телефонов вы не можете.

МЕТОД 1: Теперь давайте предположим, что вы находитесь на фондовом рынке, поскольку на самом деле это кажется более забавным решением. Я хотел бы пойти с форматом схемы URL, так как вы хотите пройти тест по электронной почте или ж / д.

это означает, что вы передадите URL, который запустит ваше приложение

URL будет выглядеть примерно так:

`quizzer://question1/question2/question3

или что-то подобное, вы можете сделать это, как вы хотите

вам нужно добавить ключ в ваш info.plist для описания схемы, так что это будет в нее

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>quizzer</string>
            </array>
        </dict>
    </array>

Обратите внимание, все это можно сделать в xcode, хотя я больше не использую xcode ... soo, да

Хорошо, теперь, когда кто-то нажимает на URL, отформатированный как указано выше, ваше приложение будет запускаться, и делегат приложения получит сообщение.

далее необходимо реализовать метод делегата приложения

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{
  // Do something with the url here
}

там, теперь вы можете строить ж / д вы хотите по URL

МЕТОД 2: К, теперь мы можем предположить, что вы на взломанном рынке. Самый простой способ, который я вижу, это использовать NSDictionary с функциями

[NSDictionary dictionaryWithContentsOfFile:(NSString *)path];

и

[dictionary writeToFile:(NSString *)path atomically:(BOOL)atomically];

Обратите внимание, что причиной джейлбрейка является то, что вы хотите импортировать тест из вложения электронной почты. Вы должны будете знать местоположение вложения, которое, вероятно, будет за пределами вашей песочницы, а затем получить информацию. Это то, что вы не можете сделать, если вы не взломан.

Если у вас есть какой-то другой способ загрузки файла в каталог вашего приложения (загрузка с сервера или что-то подобное), тогда эти функции идеально подойдут для этой задачи, независимо от того, взломан или нет.

Это было бы для импорта-экспорта ... я думаю, что это была основная часть вашего вопроса.

...