ASIFormDataRequest中出现的错误"_OBJC_CLASS_$_ASIFormDataRequest",被引用自:

3

我在使用ASIFormDataRequest时遇到了困难。

我想在iPhone上上传照片到Facebook,因此我在我的编程中使用了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.hASIFormDataRequest.h,并在编写代码的位置导入了它们。

我还添加了一些框架,如CFNetworkFoundation等等。

请帮助我解决这个错误。

2个回答

6
我今天遇到了类似的问题。如果你使用的是iOS 5,请确保将所有从ASIHTTPRequest中使用的文件(扩展名为.m)包含在项目的编译源中。你可以通过以下步骤检查:project->target->build-phase->compile source。
如果是这种情况,请尝试添加所有文件并重新编译。如果你再次使用iOS 5,这次会抛出更多的错误,都与ARC有关。为了解决这个问题,请再次进入编译源,选择所有库文件(仅选择不使用iOS 5 SDK的文件),并将它们标记为“-fno-objc-arc”。这将关闭所选文件上的ARC。

我认为这个问题是在2011年4月提出的。当时还没有iOS-5。 - Parth Bhatt

0

你必须将你的二进制文件与包含ASIFormDataRequest库的库链接起来。


请告诉我如何链接,我是新手,不知道,请告诉我。 - Yogesh
看起来它只以源代码形式分发(没有Xcode项目文件)。只需将这些源代码添加到您的项目中,并将其编译和链接到二进制文件(例如您的应用程序),就像处理其他任何源代码文件一样。 - justin
请确保 ASIFormDataRequest.m 文件在您的编译源代码构建阶段中(如果您的意思是错误相同)。 - justin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接