UIDocument's fileType reports wrong UTI.
UIDocument's fileType reports wrong UTI.
- Subject: UIDocument's fileType reports wrong UTI.
- From: Half Activist <email@hidden>
- Date: Wed, 23 Oct 2013 14:08:02 +0200
Hello,
In an iOS project, that is supposed to handle different kind of files, I declared in Info.plist the types handled, with two UTI types, say com.mycompany.typeA and com.mycompany.typeB. I also added the expected filename extensions for the two, suppose it's .typeA and .typeB.
Now, I instantiate my UIDocument, with the following code: (all inspired by UIKit docs, I stripped off some details for the sake of lisibility, the file is guaranteed not to exist in the app folder.)
NSString *newDocumentPath = [ AppDocumentPath() stringByAppendingPathComponent: @"NewDocument.typeA" ];
// Gives me a valid path to <AppHome>/Documents/NewDocument.typeA
NSURL *newDocumentURL = [ NSURL fileURLWithPath: newDocumentPath ];
// Creates a file:// for that path.
MyDocument *newDocument = [ [ MyDocument alloc ] initWithFileURL: newDocumentURL ];
// Instantiates the doc
// Finally present.
[ newDocument saveToURL: newDocumentURL
forSaveOperation: UIDocumentSaveForCreating
completionHandler: ^(BOOL success) {
[ self presentViewController: newDocument.viewController animated: YES completion: ^(){} ];
} ];
There, in the process of saving, in UIDocument's - (id)contentsForType:(NSString *)typeName error:(NSError **)outError
typeName is dyn.age81u5dmr3wu, not conforming to UTI for typeA or typeB.
The url is correct.
At any other point in the execution, fileType reports the wrong type.
With a colleague, we tried on another app where it wasn't checked for since it handles only one file format, and it's exactly the same, fileType returns another UTI from the one declared in the Info.plist.
All of this under iOS7.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden