     ///
     @objc public func getObject(objectID: String, attributesToRetrieve: [String]?, completionHandler: CompletionHandler) -> NSOperation {
         let operation = NSBlockOperation() {
-            let (content, error) = self.getObject(objectID, attributesToRetrieve: attributesToRetrieve)
+            let (content, error) = self.getObjectSync(objectID, attributesToRetrieve: attributesToRetrieve)
             self.callCompletionHandler(completionHandler, content: content, error: error)
         }
         client.searchQueue.addOperation(operation)
         return operation
     }
     
-    private func getObject(objectID: String, attributesToRetrieve: [String]?) -> (content: [String: AnyObject]?, error: NSError?) {
+    /// Get an object from this index (synchronous version).
+    ///
+    /// - parameter objectID: Identifier of the object to retrieve.
+    /// - returns: A mutually exclusive (content, error) pair.
+    ///
+    private func getObjectSync(objectID: String, attributesToRetrieve: [String]?) -> APIResponse {
         var content: [String: AnyObject]?
         var error: NSError?
         let query = Query()

    ///
    @objc public func setSettings(settings: [String: AnyObject], completionHandler: CompletionHandler? = nil) -> NSOperation {
        let operation = NSBlockOperation() {
            var content: [String: AnyObject]?
            var error: NSError?
            do {
                let jsonFilePath = try self.writeTempJSONFile(settings)
                let statusCode = Int(self.localIndex.buildFromSettingsFile(jsonFilePath, objectFiles: [], clearIndex: false, deletedObjectIDs: nil))
                if statusCode == StatusCode.OK.rawValue {
                    content = [:]
                } else {
                    error = NSError(domain: ErrorDomain, code: statusCode, userInfo: nil)
                }
                try NSFileManager.defaultManager().removeItemAtPath(jsonFilePath)
            } catch let e as NSError {
                error = e
            }
            self.callCompletionHandler(completionHandler, content: content, error: error)
        }
        client.buildQueue.addOperation(operation)
        return operation
    }
    
    /// Set this index's settings, optionally forwarding the change to slave indices.
    ///
    /// Please refer to our [API documentation](https://www.algolia.com/doc/swift#index-settings) for the list of
    /// supported settings.

    ///
    @objc public func search(query: Query, completionHandler: CompletionHandler) -> NSOperation {
        let operation = NSBlockOperation() {
            let (content, error) = self.searchSync(Query(copy: query))
            self.callCompletionHandler(completionHandler, content: content, error: error)
        }
        client.searchQueue.addOperation(operation)
        return operation
    }

    /// Search this index (synchronous version).
    ///
    /// - parameter query: Search parameters.
    /// - returns: A mutually exclusive (content, error) pair.
    ///
    private func searchSync(query: Query) -> APIResponse {
        let searchResults = self.localIndex.search(query.build())
        return OfflineClient.parseSearchResults(searchResults)
    }

    /// Get this index's settings.
    ///
    /// - parameter completionHandler: Completion handler to be notified of the request's outcome.
