现在开发iOS程序,基本都用swift来编写代码。但是很多第三方库都是oc构建的,因此集成第三方SDK的时候,多多少少会遇到一些问题。下面是我集成QQ分享遇到的问题总结。
iOS_SDK的环境搭建这里介绍的还算详细。因为Xcode版本的升级。配置还是有一点不同。
1、在工程配置中的“Build Settings”一栏中找到“Linking”配置区,给“Other Linker Flags”配置项添加属性值“-fobjc-arc”。这是以前的Xcode版本。
Xcode6是这样的。
2、新建的swift工程中并没有Frameworks文件夹。所以我们新建一个文件夹Frameworks。
3、在xxx(你的项目名)-Bridging-Header.h中添加以下头文件。路径一定要对,否则是没有效果的。我一开时就犯路径错误。这样swift才能轻松调用QQ的接口。
//TencentOpenapi
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/QQApiInterfaceObject.h>
#import <TencentOpenAPI/sdkdef.h>
#import <TencentOpenAPI/TencentMessageObject.h>
#import <TencentOpenAPI/TencentOAuthObject.h>
#import <TencentOpenAPI/WeiBoAPI.h>
#import <TencentOpenAPI/WeiyunAPI.h>
4、重写AppDelegate.swift的两个方法,用swift写。
func application(application: UIApplication,openURL url: NSURL,sourceApplication: String?,annotation: AnyObject?) -> Bool {
return TencentOAuth.HandleOpenURL(url)
}
func application(application: UIApplication,handleOpenURL url: NSURL) -> Bool {
return TencentOAuth.HandleOpenURL(url)
}
let title = deal["title"] as! String
let previewImageUrl = deal["image"] as! String
var newObj = QQApiNewsObject(URL: NSURL(string:"http://www.baidu.com")!,title: title,description: title,previewImageURL: NSURL(string: previewImageUrl)!,targetContentType:QQApiURLTargetTypeNews)
var req = SendMessageToQQReq(content: newObj)
QQApiInterface.sendReq(req)