The line (423 on
if (error != nil && status != noErr)
Should be
if (error != nil || status != noErr)
Because it is possible for the error to be nil but for the status to return something different. In that case (e.g. the item was not found) we would want to return NO