RestKit: изменить базовый URL-адрес RKObjectManager

Можно ли изменить базовый URL-адрес RKObjectManager после создания?

У меня есть окно для входа в систему, и от псевдонима я решаю, какой URL для API я должен использовать. Если я создам RKObjectManager после заполнения ник / пароля, я могу сделать только один вызов из RestKit ( https://groups.google.com/forum/?fromgroups#!topic/restkit/wFNhpCW-URA ). Если я создаю функцию RKObjectManager viewDidLoad – я не могу изменить URL.

Есть ли такое же решение моей проблемы?

Благодарю.

4 Solutions collect form web for “RestKit: изменить базовый URL-адрес RKObjectManager”

Просто потратил некоторое время на выяснение того, как это можно сделать в v0.20. Из того, что я могу сказать, вы не можете напрямую изменить базовый URL-адрес, не входя в исходный код AFNetworking. Вы можете создать новый HTTPClient и установить его, но я обнаружил, что это вызвало еще больше проблем, по-видимому, потому что RestKit делает дополнительную настройку в HTTPClient HTTPClient при настройке RKObjectManager и, устанавливая клиента напрямую, вы упускаете это.

Я придумал это решение, которое должно создать еще один RKObjectManager с новым baseURL и повторно добавить дескрипторы. Вам также потребуется снова установить типы сериализации и заголовков.

 NSString *urlString = @"http://www.something.com/api"; RKObjectManager *newManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:urlString]]; [newManager setRequestSerializationMIMEType:RKMIMETypeJSON]; [newManager setAcceptHeaderWithMIMEType:RKMIMETypeJSON]; [newManager addResponseDescriptorsFromArray:[RKObjectManager sharedManager].responseDescriptors]; [newManager addRequestDescriptorsFromArray:[RKObjectManager sharedManager].requestDescriptors]; [RKObjectManager setSharedManager:newManager]; 

Связанная документация: использование нескольких базовых URL-адресов в RestKit

Вот способ изменения RestKit baseURL после init:

 [RKObjectManager sharedManager].client.baseURL = [RKURL URLWithString:newBaseUrlString]; 

Уведомление из документа RestKit:

Изменение baseURL имеет побочный эффект, вызвавший восстановление экземпляра requestCache. Кэши поддерживаются для каждого узла.

Я использую его, и он отлично работает 🙂

Быть осторожен!

Я использовал принятый ответ для RestKit 2.0, но, к сожалению, это привело к сложному отладке сбоя в режиме restkit. То, что работало, было просто инкапсулировать все создание дескриптора и другие параметры objectmanager в метод и вызвать его с новым объектом диспетчера объектов перед вызовом [RKObjectManager setSharedManager: newManager];

Я не думаю, что для этого есть решение. RestKit использует базовый URL-адрес внутри и не может быть изменен.

  • RestKit Добавить сопоставление свойств и привязку отношений
  • Отображение объекта Reskit возвращает объекты модели с атрибутами nil
  • Restkit на Xcode 4.5 GM не работает на устройстве iOS 6 - файл был создан для архива, который не связан с архитектурой
  • Restkit, как сделать сопоставление (для многих) с помощью первичного ключа
  • Вызовы Restkit GET не отправляются асинхронно?
  • Значение RestKitTransformer не вызывается
  • Как обновить NSFetchedResultsController?
  • Загрузка изображения RestKit
  • Иерархия сопоставления запросов сложения в RestKit
  • Отношения restkit to-many добавляются к набору вместо установки нового набора
  • Использование addConnectionForRelationship для массива идентификаторов
  • Interesting Posts

    Не удалось создать экземпляр контроллера представления по умолчанию для UIMainStoryboardFile 'Main'

    CMDeviceMotion userAcceleration перевернута?

    как получить гиперссылки (URL) из защищенного паролем PDF на iOS 10.2

    Начать действие с помощью кнопки, когда она уже идет.

    повторяющиеся символы для архитектуры x86_64 При добавлении контейнеров из CocoaPods

    iOS OTA не работает

    WebSockets на iOS

    Приостановить одно действие в SKSpriteNode во время запуска другого

    Не удалось добавить google вход в ios 9.0

    iBeacons выдает при мониторинге 2 или более регионов

    Ошибка сертификата AFNetworking

    Попытка экспортировать в csv, но как я могу реализовать делегат?

    iOS: xcodebuild: error: Рабочая область '' не содержит схемы с именем ''

    Невозможно войти в систему как другой пользователь после выхода из приложения iOS

    Получите NSData прямо из AFNetworking, вместо того, чтобы позволить ему конвертировать в UIImage

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.