Learn how to load adjustment data in a Photo Extension.
This is a companion discussion topic for the original entry at https://www.raywenderlich.com/4173-ios-app-extensions/lessons/4
Learn how to load adjustment data in a Photo Extension.
The resources came with OS X tags, but apparently, tags only come with color information, not what that color meant to the user who did the tagging. What do Orange and Yellow mean on your end?
The version of canHandleAdjustmentData
in the challenge document can’t actually compile anymore, although the version in the project can. Is it actually important to cast adjustmentData.data
to an NSData?
, or is this enough?
guard let adjustmentData = adjustmentData
where
adjustmentData.formatIdentifier == "com.razeware.hipsterize"
&& ["1.0", "2.0"].contains(adjustmentData.formatVersion)
else {return false}
return true
Jesse, do you mean the downloaded resources had color tags on the folders. I think I had just used the colors so that I would know which versions to archive into the zip. On my end, I have lots of similar looking folders. That said, orange = orange and red = red. nothing more than that
Yes, your solution works. You are returning true as long as the guard doesn’t fail.
BTW it does compile for me. Are you using Xcode 7.3?
The version in ChallengeDetails.pdf doesn’t compile, but the version in ChallengeFinished does. The difference is a cast from adjustmentData.data
, which is an NSData
, to an NSData?
, which can be tested for nil. I don’t have enough experience to know for sure, if, when performing such a cast, the result could actually be nil, if, for example, there had been no actual data, but I’m thinking that it’s actually impossible for the test for adjustmentData.data as NSData? != nil
to ever be false, hence me testing the check’s removal in my code above. (I had success doing so.)
I’m thinking that maybe, when the original version of this series was created, PHAdjustmentData.data
was optional, and that Apple changed it to not be, since then. If so, I’m hoping it was done for good reason, but as someone new to much of this, it’s confusing!