ios - 如何声明setToken方法?

时间:2013-05-03 08:01:52

标签: iphone ios objective-c uiwebviewdelegate

我正在尝试从Google,Yahoo获取访问令牌。但是我收到一个错误,例如WACloudAccessControlClient可能无法响应setToken。如何在此处声明setToken方法。

-(BOOL)webView:(UIWebView *)webView
     shouldStartLoadWithRequest:(NSURLRequest *)request
                 navigationType:(UIWebViewNavigationType)navigationType

{

if(_url)
{
    /* make the call re-entrant when we re-load the content ourselves */
    if([_url isEqual:[request URL]])
    {
        return YES;
    }

    [_url release];
}

_url = [[request URL] retain];
NSString* scheme = [_url scheme];

if([scheme isEqualToString:@"acs"])
{
    // parse the JSON URL parameter into a dictionary
    NSDictionary* pairs = [self parsePairs:[_url absoluteString]];
    if(pairs)
    {
        WACloudAccessToken* accessToken;
        accessToken = [[WACloudAccessToken alloc] initWithDictionary:pairs];
        [WACloudAccessControlClient setToken:accessToken];

        [self dismissModalViewControllerAnimated:YES];
    }

    return NO;
}

[NSURLConnection connectionWithRequest:request delegate:self];

return NO;
}

有什么想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您需要将消息传递给对象而不是类名,因此首先要获取对象的引用。

我不确定你的用例是什么,只需查看WACloudAccessControlClient api它将有一些init...with...方法来创建或获取对类的对象的引用

此:

[WACloudAccessControlClient setToken:accessToken];

应该是这样的(init...方法组成,请替换为实际方法):

[[WACloudAccessControlClient initSomethingSomehow] setToken:accessToken];

你是否经历过这样的事情?:

[[WACloudAccessControlClient accessControlClientForNamespace:@“namespace-name”
                                                       realm:@“realm-name”]
                             setToken:accessToken];

修改

看看这个例子of how to interact with wa toolkit for iOS我刚刚浏览过,但它似乎有你想要的答案。