使用ObjectiveC / iPhone的TwitPic API

时间:2009-04-14 22:43:59

标签: iphone objective-c api twitter

这里有一个类似的问题,我已经阅读过了,我已经尝试按照那里给出的建议......我认为我完成了95%,但剩下的5%......你知道吗; - )

所以我试图调用twitPic API来上传图像,我已经将图像包含在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中看到它的输出 - 它不会显示在SEC中调试器 - 任何线索都可以吗?!

对不起,如果上面真的很愚蠢 - 我可以采取一些嘲笑 - 但我有点孤独与我的iPhone冒险 - 没有人反弹任何东西等 - 所以我在这里发泄一切;-)

干杯,

杰米。

1 个答案:

答案 0 :(得分:14)

您需要使用setData方法将图像数据复制到帖子中,如下所示:

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

您正在进行同步调用,这会在您上传所有图像数据时停止您的应用 - 您可能希望切换到使用NSOperationQueue或ASINetworkQueue子类,它允许您显示进度条。 / p>

您应该能够在XCode的调试器窗口中看到NSLog输出。确保你已经切换到这个(控制左上方喷雾罐打开)。您也可以启动控制台。