Использование TwitPic API от ObjectiveC / iPhone - PullRequest
2 голосов
/ 15 апреля 2009

Здесь есть похожий вопрос об этом, который я прочитал, и я пытался следовать советам, данным там ... и я думаю, что я на 95% полон, но остальные 5% ... ну, вы знаете, ; -)

Итак, я пытаюсь вызвать API-интерфейс twitPic для загрузки изображения, и у меня есть изображение, содержащееся в UIImageView, которое я отображаю на экране (я вижу его, так что оно определенно есть). Мой код для формирования вызова API выглядит следующим образом:

    NSURL *url = [NSURL URLWithString:@"http://twitpic.com/api/upload"];
NSString *username = @"myUsername";
NSString *password = @"myPassword";
NSData *twitpicImage = UIImagePNGRepresentation(imageView.image);

// Now, set up the post data:
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];

[request setPostValue:twitpicImage forKey:@"media"];
[request setPostValue:username forKey:@"username"];
[request setPostValue:password forKey:@"password"];

// Initiate the WebService request
[request start];

Я получаю сообщение об ошибке "изображение не найдено".

Это очевидно, что я делаю не так? Есть какие-нибудь намеки? Я только неделю в ObjectiveC, так что вполне вероятно, что это настоящая ошибка новичка.

На том же пути - мне не ясно, как я могу правильно зафиксировать здесь успех или неудачу в коде - в настоящее время я выкидываю 'request responseString' в предупреждение, которое не самое лучшее - как я могу это сделать? проверить результат правильно?

Я также видел использование 'NSLog' - который, я подозреваю, является средством отладки / ведения журнала консоли - но я не могу увидеть результат этого в XCode - он не ВИДЕТСЯ для отображения в отладчик - есть какие-нибудь подсказки?!

Извините, если вышеупомянутое действительно глупо - я могу немного посмеяться - но я как бы изолирован от своих приключений с iPhone - никто не откачивает что-то и т. Д. - поэтому я выскажу все это здесь ;-)

Приветствия

Джейми.

1 Ответ

14 голосов
/ 15 апреля 2009

Вам необходимо использовать метод setData, чтобы скопировать данные изображения в сообщение, например:

[request setData:twitPicImage forKey:@"media"];

Вы делаете синхронный вызов, который останавливает ваше приложение, пока вы загружаете все эти данные изображения - вы можете переключиться на использование NSOperationQueue или подкласса ASINetworkQueue, который позволяет отображать индикатор выполнения. 1004 *

Вы должны увидеть вывод NSLog в окне отладчика XCode. Убедитесь, что вы переключились на это (контроль вверху слева с баллончиком). Вы также можете запустить консоль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...