no need to get typeof weakSelf
cache fileURL of bookmark during the current run of the runloop to avoid resolving the alias for multiple properties, e.g. for bindings in the UI
use typeof(self) instead of explicit type
get resource value from bookmark data from alias instead of custom properties
resuse variable
guess icon from path of bookmark when url resolving fails
validate addBookmark:, invalidate when fileURL does not exist
make sure hasFileURL: is used only with an existing fileURL