class NSError def self.new(message='Error', options={}) domain = options[:domain] || 'Error' code = options[:code] || 0 info = { NSLocalizedDescriptionKey => message } if options[:userInfo] info.merge! options[:userInfo] end NSError.alloc.initWithDomain(domain, code: code, userInfo: info) end end