实施统一类型标识符,当通过电子邮件发送单个附件时,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--
答案 0 :(得分:0)
虽然我对这种行为感到惊讶(我本以为只能看到用户点击的附件)但这并不难解决。
您可以轻松编写多部分MIME扫描程序,将多部分邮件拆分为单个附件。
您确定在发送的电子邮件中确实有个别文件吗?检查原始消息。
您也可能错误地设置了UTI注册,请阅读我的文章:http://www.cocoanetics.com/2012/09/fun-with-uti/
通常,如果您通过文件打开(从另一个应用程序)打开一个应用程序,您将收到一个文件URL,该文件URL指向接收应用程序的文档/收件箱文件夹中所述文件位置的副本。检查此URL以查看系统所在的文件类型。如果您不删除它,则可以使用Xcode管理器将应用程序文件夹的内容复制到桌面。