0

我正在编写一个 iPad 应用程序,它将使用 MacBook Pro 上的多个文本文件作为将在 iPad 上显示的 UITableViews 的数据源。

几个问题:

  1. 我了解,为了让我的应用程序通过 USB/iPad 连接器从我的 MacBook Pro 获取文件,我的应用程序必须支持文件共享。我该如何做到这一点?

  2. 由于 Apple 将 iPad 制作为设备,因此我看不到它的文件系统。那么如何声明存储获取文件的路径呢?iPad 是具有多个用户主目录的多用户计算机吗?

  3. 我可以编写我的应用程序以与附件连接器中的 SD 卡接口,以便从该卡中获取文本文件吗?我应该使用什么类来做到这一点?

4

1 回答 1

0

  1. [http://developer.apple.com/library/ios/#documentation/General/Reference /InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW1][1] 将 UIFileSharingEnabled 键添加到您的 Info.plist 文件。要查看文件,请打开 iTunes,查看左侧面板,单击您的 iPad,查看主内容窗格上方的工具栏,单击“应用程序”,向下滚动,您将看到可以拖放文件和导出文件(但你不能拖动它们,这很烦人)。我其实也被这件事难住了
  2. 使文件共享文件可见的方法是将它们写入一个神奇的目录,该目录通过以下代码获得:
    
    
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString* documentDirPath = [paths objectAtIndex:0];
    
    
    这是我完整使用的例程:
    
    NSString* FileUtils_newUserVisibleFilePath(NSString* toFile) {
            NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString* documentDirPath = [paths objectAtIndex:0];
            NSString* filePath;
            if ([documentDirPath characterAtIndex:[documentDirPath length]-1] != '/') {
                    filePath = [[NSString alloc] initWithFormat:@"%@/%@",documentDirPath,toFile];
            } else {
                    filePath = [[NSString alloc] initWithFormat:@"%@%@",documentDirPath,toFile];
            }
            [pool release];
            return filePath;
    }
    
    
  3. 我不知道。但是,我也知道很多 iPad 用户不使用 SD 卡,所以我认为这是少数功能

一些开发人员最终做的是在 iPad 上提供 HTTP 服务器。[1]:http: //developer.apple.com/library/ios/#documentation/General/Reference /InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW1

于 2011-02-05T11:06:23.120 回答