<key>CFBundledocumentTypes</key> <array> <dict> <key>CFBundleTypeIconfiles</key> <array> <string>Icon60@2x</string> </array> <key>CFBundleTypename</key> <string>CSV</string> <key>CFBundleTypeRole</key> <string>Default</string> <key>LSHandlerRank</key> <string>Default</string> <key>LSItemContentTypes</key> <array> <string>public.text</string> </array> </dict> </array><key>UTExportedTypeDeclarations</key> <array> <dict> <key>UTTypeConformsTo</key> <array> <string>public.text</string> </array> <key>UTTypeDescription</key> <string>CSV</string> <key>UTTypeIDentifIEr</key> <string>public.text</string> <key>UTTypeTagspecification</key> <dict> <key>public.filename-extension</key> <string>csv</string> <key>public.mime-type</key> <string>application/myApp</string> </dict> </dict> </array>
导出按预期工作,没有问题.导入也很有效,但只适用于存储在我的app iCloud文件夹之外的文件,即当我从邮件或通用iCloud文件夹中点击.txt文件时,我可以在“导入…”菜单旁边看到我的应用程序应用.但是,当我在iCloud上从我的app文件夹中点击完全相同的文件时,我的应用程序未列在“导入…”菜单中.
通过在iCloud上说我的app文件夹来澄清我的意思. App具有使用以下功能在iCloud上导出和保存某些数据的功能:
func autoExportToIcloudDrive(_ localfileURL:URL,filenameST:String) { let iClouddocumentsURL = fileManager.default.url(forUbiquityContainerIDentifIEr: nil)?.appendingPathComponent("documents").appendingPathComponent("\(filenameST).csv"); if iClouddocumentsURL != nil { let olderfileURL = iClouddocumentsURL?.appendingPathComponent(filenameST); if fileManager.default.fileExists(atPath: olderfileURL!.path) { self.uniFunc.deletefileAtPath(pathUrl: olderfileURL!); } do { try fileManager.default.copyItem(at: localfileURL,to: iClouddocumentsURL!); } catch { let nserror = error as NSError; fatalError("\(nserror),\(nserror.userInfo)"); } } }
这将在iCloud驱动器中创建app文件夹并将我的文件存储在那里.当我点击这个文件时,我无法在“导入…”菜单中看到我的应用程序.当我从app文件夹移出文件时,我的应用程序出现在“import with …”菜单中.
这是一个预期的设计和应用程序不希望“看到”他们自己的iCloud驱动器文件夹中的文件或我在.pList文件中缺少某种额外的文件关联?
解决方法 这是预期的行为,因为“导入”与“打开”不同.通过导入文件,您可以将其内容作为应用数据的一部分.您的应用程序中的文件iCloud容器已经是(部分)您的应用程序数据,因此将它们导入您的应用程序数据是没有意义的.UPDATE
CFBundledocumentTypes下的以下属性将影响您的应用在文件上下文中的显示方式和方式:
> CFBundleTypeRole的值:“编辑器”与“查看器” – 持久编辑需要将文件导入应用程序数据(此处“默认”不是有效值)> Assigned LSHandlerRank:“Owner”,“Default”,“Alternate” – 声明是文件类型的主要应用程序(所有者)可能导致“import with”部分被删除>注册正确的LSItemContentTypes:“.csv”文件将被识别为“public.comma-separated-values-text”(kUTTypeCommaSeparatedText)
总结以上是内存溢出为你收集整理的ios – 文件类型与我的应用程序的关联全部内容,希望文章能够帮你解决ios – 文件类型与我的应用程序的关联所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)