2

这里有一个类似的问题,我已经阅读过,我试图遵循那里给出的建议......我认为我已经完成了 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 中只有一周的深度,所以这很可能是一个真正的新手错误。

在同一条轨道上-我不清楚如何在此处的代码中正确捕获成功或失败-我目前正在将“请求响应字符串”转储到不是最好的警报-我如何检查结果适当地?

我还看到了“NSLog”的使用——我怀疑它是一个调试/控制台日志记录工具——但我在 XCode 中的任何地方都看不到它的输出——它似乎没有显示在调试器中——任何有线索吗?!

抱歉,如果以上内容真的很愚蠢-我可以有点嘲笑-但我对我的iPhone冒险有点孤立-没有人可以反弹任何东西等等-所以我在这里发泄一下;-)

干杯,

杰米。

4

1 回答 1

14

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

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

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

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

于 2009-04-15T07:30:02.800 回答