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