ASIFormDataRequest работает на симуляторе, но не на устройстве?

Я использую ASIFormDataRequest для публикации трех значений, которые являются URL-адресом, заголовком и сводкой. Все они отлично работают на симуляторе, но не работают на устройстве. Вот код, который я использую:

- (IBAction)addLinkPressed:(UIButton *)sender { ASIFormDataRequest *loginRequest = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://MyWebsite.com/login.php"]]; [loginRequest setRequestMethod:@"POST"]; [loginRequest setPostValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"defaultUsername"] forKey:@"username"]; [loginRequest setPostValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"defaultPassword"] forKey:@"password"]; [loginRequest setUseKeychainPersistence:YES]; [loginRequest setDelegate:self]; [loginRequest setDidFinishSelector:@selector(requestLoginFinished:)]; [loginRequest setDidFailSelector:@selector(requestLoginFailed:)]; [loginRequest startSynchronous]; NSString *strURL = @"http://MyWebsite.com/send_link.php"; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]]; [request setDelegate:self]; [request setPostValue:self.linkField.text forKey:@"url"]; [request setPostValue:self.linkTitleField.text forKey:@"title"]; [request setPostValue:self.linkSummaryField.text forKey:@"summary"]; [request setDidFinishSelector:@selector(requestDone:)]; [request setDidFailSelector:@selector(requestWentWrong:)]; [request startAsynchronous]; } 

Любой может мне помочь!

One Solution collect form web for “ASIFormDataRequest работает на симуляторе, но не на устройстве?”

Прежде всего: ASIRequest больше не поддерживается. Известно, что в некоторых случаях это ошибка, и ошибки не будут исправлены.

Во-вторых, в отношении вашего вопроса я вижу два места, где может возникнуть ошибка (разница между симулятором и устройством):

  1. Вы уверены, что на устройстве [[NSUserDefaults standardUserDefaults] objectForKey:@"defaultUsername"] и [[NSUserDefaults standardUserDefaults] objectForKey:@"defaultPassword"] установлены правильно?

  2. На симуляторе iOS у вас нет доступа к keychain, поэтому этот параметр ( [loginRequest setUseKeychainPersistence:YES]; ) может также вызвать проблемы на устройстве.

Я советую проверять NSUserDefaults и лучше использовать другую структуру, то есть RestKit

Редакция:

Пример использования RestKit:

 [RKClient clientWithBaseURLString:@"http://example.com"]; RKClient *rkclient = [RKClient sharedClient]; RKParams *params = [RKParams paramsWithDictionary:[NSDictionary dictionaryWithObjectsAndKeys: username, @"username", password, @"password", nil]]; [rkclient post:@"/profile" params:params delegate:self]; // implement needed delegate methods 
  • Объединение файлов ARC и не ARC не работает
  • Xcode - изменить идентификатор пакета, но не имя продукта
  • Метод из категории выдает исключение после обновления до Xcode 4.2 / iOS 5
  • Изменение текста UISwitch в iOS 4.2
  • Двоичная ошибка не оптимизирована для iPhone 5 - в Xcode6 с LaunchScreen.xib
  • Значки, необходимые для приложения iOS
  • Как полностью, надежно удалить профили подготовки с Mac?
  • Как использовать пользовательский UIButton с интерфейсом Builder?
  • Загрузка в App Store дает предупреждение; ПРЕДУПРЕЖДЕНИЕ ITMS-90686: «Бинарный файл, который вы загрузили, недействителен».
  • Xcode: проблема «file xxx.png отсутствует в рабочей копии» в проекте
  • Как получить срабатывание точки останова, если переменная экземпляра в классе изменилась?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.