由于Weibosdk 和微博提供的demo都是由objective-c语言开发的,那么在用swift语言调用的时候就会有些不同
在demo中获取用户的信息是这样写的:
AppDelegate*myDelegate =(AppDelegate*)[[UIApplicationsharedApplication]delegate];
[WBHttpRequest requestForUserProfile:myDelegate.wbCurrentUserIDwithAccessToken:myDelegate.wbtokenandOtherProperties:nil queue:nil withCompletionHandler:^(WBHttpRequest*httpRequest, id result,NSError*error) {
DemoRequestHanlder(httpRequest, result, error);
}];
WBHttpRequest 有个requestForUserProfile函数来提供用户信息的请求,但是在swift当中通过桥接文件去调用这个requestForUserProfile函数的时候却发现找不到,一开始百思不得其解,点击类名进入定义文件中去看,发现确实是有这个函数的,但是却访问不到,经过各种尝试发现OC中的静态方法经过桥接到Swift语言中却变成了init方法:
WBHttpRequest.init(forUserProfile: userId, withAccessToken: accessToken, andOtherProperties:nil, queue:nil, withCompletionHandler: {
(httpRequest,result,error)in
if let user = result as?WeiboUser{
print(" user\(user.name) avator url\(user.avatarHDUrl)\(error)")
}
})
这样就可以请求到微博的用户信息了
网友评论