我在ASIFormDataRequest中苦苦挣扎。
我想在iphone上上传一张照片,以便我在编程中使用ASIFormDataRequest,但它给我的错误如_OBJC_CLASS_$_ASIFormDataRequest
,引自:
我不明白它的含义以及我该如何处理它
我上传照片的代码如下:
-(void)postphoto:(id)sender
{
UISegmentedControl* _segControl;
//ASIFormDataRequest *request;
UIImageView *_imageView = [UIImageView alloc];// initWithImage: image];
NSString *likeString;
NSString *filePath = nil;
if (_imageView.image == [UIImage imageNamed:@"angelina.jpg"]) {
filePath = [[NSBundle mainBundle] pathForResource:@"angelina" ofType:@"jpg"];
likeString = @"babe";
} else if (_imageView.image == [UIImage imageNamed:@"depp.jpg"]) {
filePath = [[NSBundle mainBundle] pathForResource:@"depp" ofType:@"jpg"];
likeString = @"dude";
} else if (_imageView.image == [UIImage imageNamed:@"maltese.jpg"]) {
filePath = [[NSBundle mainBundle] pathForResource:@"maltese" ofType:@"jpg"];
likeString = @"puppy";
}
if (filePath == nil) return;
NSString *adjectiveString;
if (_segControl.selectedSegmentIndex == 0) {
adjectiveString = @"cute";
} else {
adjectiveString = @"ugly";
}
NSString *message = [NSString stringWithFormat:@"I think this is a %@ %@!", adjectiveString, likeString];
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/me/photos"];
//[ self setRequest:[ASIFormDataRequest requestWithURL:url]];
request = [ASIFormDataRequest requestWithURL:url];
[request addFile:filePath forKey:@"file"];
[request setPostValue:message forKey:@"message"];
//[request setPostValue:_accessToken forKey:@"access_token"];
[request setDidFinishSelector:@selector(sendToPhotosFinished:)];
[request setDelegate:self];
[request startAsynchronous];
}
我还添加了两个文件ASIHTTPRequest.h
和ASIFormDataRequest.h
并将其导入我编写代码的位置
我还添加了CFNetwork
,Foundation
等
请帮我解决此错误。
答案 0 :(得分:6)
我今天遇到了类似的问题。如果您使用的是iOS 5,请确保ASIHTTPRequest中使用的所有文件(扩展名为.m)都包含在项目的编译源中。你可以通过以下方式检查:project-> target-> build-phase->编译源代码。
如果是这种情况,请尝试添加所有文件并重新编译。再次,如果你使用ios 5,这次会抛出更多的错误。所有与ARC有关。要再次解决此问题,请转到编译源,选择所有库文件(仅选择不使用ios5 sdk的文件)并将其标记为“-fno-objc-arc”。这将关闭所选文件上的ARC。
答案 1 :(得分:0)
您必须将二进制文件与具有ASIFormDataRequest的库链接。