Re: UTI and/or bundle-IDs with small letters
Re: UTI and/or bundle-IDs with small letters
- Subject: Re: UTI and/or bundle-IDs with small letters
- From: Daryle Walker <email@hidden>
- Date: Thu, 02 Mar 2017 18:59:55 -0500
> On Mar 2, 2017, at 2:38 PM, Daryle Walker <email@hidden> wrote:
>
> I’m trying out my document-based Mac app’s data-read routine, and the code it being skipped. I actually check the typeName (i.e. the UTI) and it doesn’t match. My bundle identifier for the app has capital letters. I base my document’s main type off that identifier, so it also has capital letters. Turns out that the system gives me the UTI in all small letters, so my (Swift) “switch” fails and my no-matching-type code is executed. I know I could switch my bundle ID to all small letters, but I want to know first if this is documented? Or is the small-letters transformation a bug?
>
> BTW, I looked at the TextEdit sample code, and it uses the type conformance methods instead of an exact string match. Should I be doing that instead? (Although that means no more “switch” statement.)
Before looking at the replies, I tried:
> override func read(from data: Data, ofType typeName: String) throws {
> guard UTTypeConformsTo(typeName as CFString, MyTypeUTI as CFString) else {
> throw CocoaError(.fileReadUnknown)
> }
and it worked. So I’m going to switch all of my “switch” to “if-else” chains to use this function. The app-specific part of my bundle ID is an initialism, so I’m reluctant to make it small letters. So it’s debatable whether Apple making the UTIs it process in lowercase is a bug, but that Apple doesn’t seem to indicate anywhere that you can’t have a bundle-ID/UTI that differs from another solely by case definitely is a bug.
Bug # 30819460
—
Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT mac DOT com
_______________________________________________
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