0

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

  1. 用户可以创建(50%DONE)/编辑/删除/查看创建的测验!
  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。也许 writeToFile:@"filename.obj"。我不知道如何实现这个!
4

1 回答 1

1

不太确定您的问题是什么,您的代码段中有 10 个问题。但唯一可能困难的是导入/导出的东西,所以对此无济于事。

取决于您使用的系统。在越狱社区中,您可以访问沙盒之外的文件……在受压迫的库存 iphone 世界中,您不能。

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

这意味着您将传递一个将启动您的应用程序的 url

网址看起来像这样:

`quizzer://question1/question2/question3

或类似的东西,你基本上可以随心所欲地做

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

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

请注意,这都可以在 xcode 中完成,不过我不再使用 xcode 了……所以,是的

好的,现在只要有人点击上面格式的 URL,您的应用程序就会启动,并且应用程序代理会收到消息。

接下来,您需要实现这个应用程序委托方法

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

在那里,现在您可以从 URL 构建所需的 w/e

方法2: K,现在我们可以假设你在越狱市场。我看到的最简单的方法是使用具有以下功能的 NSDictionary

[NSDictionary dictionaryWithContentsOfFile:(NSString *)path];

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

请注意,越狱是其中一部分的原因是如果您想从电子邮件附件中导入测验。您必须知道附件的位置,它可能在您的沙箱之外,然后获取信息。如果你没有越狱,这是你不能做的事情。

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

那将用于进口出口...我认为这是您问题的主要部分。

于 2011-02-08T03:18:46.920 回答