实现了统一类型标识符,当通过电子邮件发送单个附件时,stringWithContentsOfURL返回一个NSString,其中包含由NSURL定义的文件的内容。
当从带有多个文件的电子邮件中选择文件时,stringWithContentsOfURL以NSString的形式返回附加的所有文件和头信息。
是否有方法只打开选定的文件?
更新:
您可以解析原始源并确定从NSURL中选择了哪个文件,我认为这可能存在问题。
端更新
代码(在这两种情况下,url指向单个文件)。文件扩展名为*.defects
NSString *file = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];单一附件邮件的结果
"Defect Names"
"Test1 Area"
"Test2 Area"
"Test 3 Area"
"Test 4 Area"
"Extra"多附件邮件的结果
--Apple-Mail=_785C0CB9-CB2F-43BE-AD5F-D7DEF5F97EFC
Content-Disposition: attachment;
filename=Areas.defects
Content-Type: defects/x-defects;
x-unix-mode=0644;
name="Areas.defects"
Content-Transfer-Encoding: 7bit
"Area of Defect"
"Test1 Area"
"Test2 Area"
"Test 3 Area"
"Test 4 Area"
"Extra"
--Apple-Mail=_785C0CB9-CB2F-43BE-AD5F-D7DEF5F97EFC
Content-Disposition: attachment;
filename="pos.defects"
Content-Type: defects/x-defects;
x-unix-mode=0644;
name="pos.defects"
Content-Transfer-Encoding: 7bit
"Position of Item"
"Test1 Position"
"Test2 Position"
"Test 3 Position"
"Test 4 Position"
"Extra"
...
--Apple-Mail=_785C0CB9-CB2F-43BE-AD5F-D7DEF5F97EFC--发布于 2012-12-17 06:39:33
虽然我对这种行为感到惊讶(我本以为只会看到用户点击的附件),但这并不难解决。
您可以轻松地编写多部分MIME扫描器,将多部分消息分解为各个附件。
你确定你在发送的电子邮件中确实有单独的文件吗?检查原始信息。
另外,您可能设置了错误的UTI注册,请阅读我的写作:http://www.cocoanetics.com/2012/09/fun-with-uti/
通常,如果您通过File (fom另一个应用程序)打开一个应用程序,您将得到一个文件URL,该文件URL指向接收应用程序文档/收件箱文件夹中所述文件位置的副本。检查这个URL,看看系统在那里放置了什么样的文件。如果不删除它,则可以使用Xcode管理器将应用程序文件夹的内容复制到桌面上。
https://stackoverflow.com/questions/13909326
复制相似问题