如何实现导入/导出文件到应用程序?

时间:2011-02-08 02:49:22

标签: iphone ios4 store nsobject

我的目标(这是出于培训目的):

  1. 用户可以创建(50%完成)/编辑/删除/查看创建的测验!
  2. 测验有一个名字,desc,type,...(DONE)和一个包含这样的对象的数组:@“问题:答案”
  3. 用户应该能够通过电子邮件附件导出/导入一个/多个测验! 但到目前为止我来了:
  4. 测验班: .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。也许是writeToFile:@“filename.obj”。我不知道如何实现这个!

1 个答案:

答案 0 :(得分:1)

不确定您的问题是什么,您的代码段中有10个问题。但唯一可能难的是进口/出口的东西,对此有很大的帮助。

取决于您正在使用的系统。在越狱社区中,您可以访问沙盒外的文件...在受压迫的股票iphone世界中,您无法访问。

方法1: 现在,让我们假设您在股票市场,因为这实际上似乎是一个更有趣的解决方案。我会使用URL方案格式,因为您想通过电子邮件或w / e传递测验。

这意味着您将传递将启动您的应用的网址

网址看起来像这样:

`quizzer://question1/question2/question3

或类似的东西,基本上可以按照你想要的方式进行

你需要在info.plist中添加一个密钥来描述这个方案,所以这将进入它

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

注意,这一切都可以在xcode中完成,我不再使用xcode虽然... soo,是啊

好的,现在只要有人点击上面格式化的网址,您的应用就会启动,应用代表也会收到该消息。

接下来,您需要实现此应用委托方法

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

那里,现在你可以通过URL

构建你想要的了

方法2: K,现在我们可以假设您已进入越狱市场。我看到的最简单的方法是使用具有

功能的NSDictionary
[NSDictionary dictionaryWithContentsOfFile:(NSString *)path];

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

请注意,越狱的部分原因是您要从电子邮件附件中导入测验。您必须知道附件的位置,这可能位于您的沙箱之外,然后获取信息。如果你没有越狱,这是你无法做到的。

如果您有其他方法将文件放入应用程序的目录(服务器下载或类似的东西),那么无论是否越狱,这些功能都将非常适合该任务。

那将是导入导出......我认为这是你问题的主要部分。