Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios &引用;“自我”;用于委托的关键字为空_Ios - Fatal编程技术网

Ios &引用;“自我”;用于委托的关键字为空

Ios &引用;“自我”;用于委托的关键字为空,ios,Ios,我正在尝试合并OAuthConsumer以与API交互。当“self”关键字为空时,我遇到了一个委托问题 将下面的代码放在唯一的viewController中时,一切正常。当代码放在名为wpOAuth的类中时,该类随后从viewController调用,“self”关键字为空,这会导致此错误: requestTokenTicket:didFinishWithData::发送到实例0x7172ac0的选择器无法识别 -(void)getKey:(UIViewController *) uiView

我正在尝试合并OAuthConsumer以与API交互。当“self”关键字为空时,我遇到了一个委托问题

将下面的代码放在唯一的viewController中时,一切正常。当代码放在名为wpOAuth的类中时,该类随后从viewController调用,“self”关键字为空,这会导致此错误: requestTokenTicket:didFinishWithData::发送到实例0x7172ac0的选择器无法识别

-(void)getKey:(UIViewController *) uiViewController{
    NSLog(@"\n\nGet Key!!!!!");
    OAConsumer *consumer = [[OAConsumer alloc] initWithKey:@"fsdfsdsdfsdfsdf"
                                                    secret:@"sdfdsfsdfsdf"];

    NSURL *url = [NSURL URLWithString:@"http://api-public.netflix.com/oauth/request_token"];

    OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
                                                                   consumer:consumer
                                                                      token:nil   // we don't have a Token yet
                                                                      realm:nil   // our service provider doesn't specify a realm
                                                          signatureProvider:nil]; // use the default method, HMAC-SHA1

    [request setHTTPMethod:@"POST"];

    OADataFetcher *fetcher = [[OADataFetcher alloc] init];

    [fetcher fetchDataWithRequest:request
                         delegate:self
                didFinishSelector:@selector(requestTokenTicket:didFinishWithData:)
                  didFailSelector:@selector(requestTokenTicket:didFailWithError:)];
}

- (void)requestTokenTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data {
    if (ticket.didSucceed) {
        NSString *responseBody = [[NSString alloc] initWithData:data
                                                       encoding:NSUTF8StringEncoding];
        //requestToken = [[OAToken alloc] initWithHTTPResponseBody:responseBody];
        NSLog(@"%@",[[OAToken alloc] initWithHTTPResponseBody:responseBody]);
        NSLog(@"\nticket is????????????????????????????= %@ ",ticket.body);
    }
}
了解self关键字为何为空将不胜感激

谢谢,
4D

我不熟悉以这种方式处理的代理,但我认为您需要添加
-(void)requestTokenTicket:(OAServiceTicket*)ticket didFinishWithData:(NSData*)数据到标题以定义方法。看起来,
OADataFetcher
没有使用协议,因此当它试图调用对象上的方法时,它不可见,因为您没有定义它。

self
关键字不是空的,它由4个字符填充。请使用正确的术语,因为不这样做会使您的问题变得毫无意义。请在“requestTokenTicket:didFinishWithData::Unrecogned selector”之前显示错误消息的开头。以下是完整错误:2012-11-27 11:26:43.204 SImpleNetflixAPISearch[56975:c07]-[NSISUnrestrictedVariable requestTokenTicket:didFinishWithData:]:发送到实例的选择器无法识别0x7172ac0@H2CO3,说真的,不需要那种程度的迂腐。这可能是因为对问题缺乏了解,因此我们在这里提供帮助。由于消息被发送到一个私有对象类型,很可能您的代理在请求之前已被释放ishes(以及为
NSISUnrestrictedVariable
——不管是什么)重用的内存。如果启用僵尸,您可能会更好地了解发生这种情况的位置。下面是上述代码的调试映像,显示了“自我”属性是一个错误/未知的类。我无法嵌入图像,因此这里有一个链接freeimagehosting.net/p4qyb。我在头文件中添加的方法无效。请注意,OAuthConsumer代码未使用ARC,而我的其余代码则使用ARC。