2012-12-17 74 views
1

實現統一類型標識符並通過電子郵件發送一單個附件時,stringWithContentsOfURL返回與由NSURL定義的文件的內容的一個NSStringstringWithContentsOfURL返回所有附加的文件的NSString

當從附加了多個文件的電子郵件中選擇文件時,stringWithContentsOfURL返回所有帶有標題信息的附加文件,作爲NSString

有沒有辦法只打開選定的文件?

更新:

  • 第一個文件的用戶觸摸,文件如預期進行處理。用戶可以觸摸很多次,一切都很好。
  • 接觸到的任何後續文件,電子郵件的原始源,減去電子郵件標題,將被保存爲由NSURL表示的文件。
  • 此行爲已經在iphone 6.0.1和ipad 5.1.1上觀察到。

您可以解析原始來源並確定從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

你要找的是'NSURLConnection'和'NSMutableURLRequest'。 – 2012-12-17 06:30:46

回答

0

雖然我對這種行爲感到驚訝郵件(我會預期只會看到用戶點擊的附件),這不難解決。

您可以輕鬆編寫一個多部分MIME掃描程序,將多部分郵件拆分爲單個附件。

您確定您實際上正在發送的電子郵件內有單個文件嗎?檢查原始消息。

而且你可能已經設置了UTI登記有誤,請閱讀我的新手必看:http://www.cocoanetics.com/2012/09/fun-with-uti/

通常,如果你通過文件打開方式(FOM另一個應用程序),你得到通過的文件URL即點打開應用複製到接收應用程序的文檔/收件箱文件夾中的所述文件位置的副本。檢查此URL以查看系統在那裏放置什麼類型的文件。如果您不刪除它,那麼您可以使用Xcode組織者將您的應用程序文件夾的內容複製到桌面。