Linking to MLMediaSourcePhotosIdentifier
Linking to MLMediaSourcePhotosIdentifier
- Subject: Linking to MLMediaSourcePhotosIdentifier
- From: Graham Cox <email@hidden>
- Date: Thu, 23 Apr 2015 15:15:46 +1000
I’m a bit confused/concerned about a problem I’m having using MLMediaLibrary.
On 10.10, my code works fine, and imports the media from Photos or iPhotos OK.
On 10.9, the same code crashes. At the moment it’s a bit unclear exactly where it’s crashing - The app I built on 10.10 using XCode 6.3 crashes on 10.9.1, but moving the project over to my 10.9 machine to find out why it was crashing required a massively tedious set of updates to get a working development system. In the end I have 10.9.5 with Xcode 6.1, but when I build using that the same code no longer crashes. That means that I’m having a hard time reproducing the problem I was seeing because I can’t build and debug on the system that exhibits the problem.
What it appears to be is that the earlier 10.9 version of MediaLibrary.framework did not export the string constant MLMediaSourcePhotosIdentifier, even though it’s declared in the header. The string is declared extern, and on a build using the 10.10 SDK, links fine. When it finds itself running on 10.9.1, this linkage fails. I’m not sure what happens when a string constant can’t be linked, presumably the address is random or nil. This crashes my code which adds this string to the options dictionary passed to -[MLMediaLibrary initWithOptions:]
For my code, the MediaLibrary.framework is optional, and I detect whether it’s available by testing whether NSClassFromString(@“MLMediaLibrary”) return Nil or a valid Class. But that doesn’t help with the extern identifier string - the framework exists but the string doesn’t in some versions. What is a clean way to detect whether an externally linked string exists, and if it does not, to supply it myself? Or maybe I don’t need to bother, since any version of the OS that doesn’t export the string is not going to be able to run Photos anyway, so that combo will never arise in practice.
Of course this might not be the reason for the crash, but it’s the best theory I have at the moment.
—Graham
_______________________________________________
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