Авторизация в vk на Swift

Рейтинг: 0Ответов: 1Опубликовано: 28.02.2015

Не получается авторизоваться во вконтакте. Документации по Swift во вконтакте нет, только на objective-c. Пробовал сделать так:

Подключил VKSdk.framework. В AppDelegate прописал openurl:

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: NSString?, annotation: AnyObject) -> Bool {

    var wasHandled:Bool = VKSdk.processOpenURL(url, fromApplication: sourceApplication)

        return wasHandled
    }

В классе:

import UIKit

class ViewController: UIViewController {

    var viewController: UIViewController?

    let SCOPE = [ "friends" ];

    override func viewDidLoad() {
        super.viewDidLoad()

                // Do any additional setup after loading the view, typically from a nib.

        VKSdk.initializeWithDelegate(self, andAppId: "4727261")

        if (VKSdk.wakeUpSession()) {

        } else {
            VKSdk.authorize(SCOPE);
        }

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

Ругается на строчку:

VKSdk.initializeWithDelegate(self, andAppId: "4727261")

Кто сталкивался, подскажите, что продправить.

Ответы

▲ 2Принят

Ругается на /BLABLABLA/swift:297:33: Type 'classname' does not conform to protocol 'VKSdkDelegate'?

Если да, то добавьте поддержку протокола классу, где все это дело происходит:

extension MyClass: VKSdkDelegate {
func vkSdkNeedCaptchaEnter(captchaError: VKError) { }
func vkSdkTokenHasExpired(expiredToken: VKAccessToken) { }
func vkSdkUserDeniedAccess(authorizationError: VKError) { }
func vkSdkShouldPresentViewController(controller: UIViewController) { }
func vkSdkReceivedNewToken(newToken: VKAccessToken) { }
}