Swift FBSDKAppInviteDialogDelegate 的实现不工作
Swift implementation of FBSDKAppInviteDialogDelegate not working
我正在尝试在我的 class 上实施 FBSDKAppInviteDialogDelegate 协议,但是 xcode 向我显示一个错误 "Type MyClass does not conform to protocol 'FBSDKAppInviteDialogDelegate'"
协议定义:
@protocol FBSDKAppInviteDialogDelegate <NSObject>
/*!
@abstract Sent to the delegate when the app invite completes without error.
@param appInviteDialog The FBSDKAppInviteDialog that completed.
@param results The results from the dialog. This may be nil or empty.
*/
- (void)appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didCompleteWithResults:(NSDictionary *)results;
/*!
@abstract Sent to the delegate when the app invite encounters an error.
@param appInviteDialog The FBSDKAppInviteDialog that completed.
@param error The error.
*/
- (void)appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didFailWithError:(NSError *)error;
@end
我的代码:
我的定义class
class MyClasse: UITableViewController, FBSDKAppInviteDialogDelegate
调用邀请对话框:
var inviteDialog:FBSDKAppInviteDialog = FBSDKAppInviteDialog()
if(inviteDialog.canShow()){
let appLinkUrl:NSURL = NSURL(string: "http://mylink.com")!
let previewImageUrl:NSURL = NSURL(string: "http://mylink.com/image.png")!
var inviteContent:FBSDKAppInviteContent = FBSDKAppInviteContent(appLinkURL: appLinkUrl)
inviteContent.previewImageURL = previewImageUrl
inviteDialog.content = inviteContent
inviteDialog.delegate = self
inviteDialog.show()
}
协议方法的实现:
//function of FBSDKAppInviteDialogDelegate
func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didCompleteWithResults results: NSDictionary!){
// my code here
}
//function of FBSDKAppInviteDialogDelegate
func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didFailWithError error: NSError!){
// my code here
}
邀请对话框有效。但是没有协议我无法得到结果。
我在这里缺少什么?
问题出在 NSDictionary 上。以下对我有用:
func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didCompleteWithResults results: [NSObject : AnyObject]!) {
println("Complete invite without error")
}
func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didFailWithError error: NSError!) {
println("Error in invite \(error)")
}
我正在尝试在我的 class 上实施 FBSDKAppInviteDialogDelegate 协议,但是 xcode 向我显示一个错误 "Type MyClass does not conform to protocol 'FBSDKAppInviteDialogDelegate'"
协议定义:
@protocol FBSDKAppInviteDialogDelegate <NSObject>
/*!
@abstract Sent to the delegate when the app invite completes without error.
@param appInviteDialog The FBSDKAppInviteDialog that completed.
@param results The results from the dialog. This may be nil or empty.
*/
- (void)appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didCompleteWithResults:(NSDictionary *)results;
/*!
@abstract Sent to the delegate when the app invite encounters an error.
@param appInviteDialog The FBSDKAppInviteDialog that completed.
@param error The error.
*/
- (void)appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didFailWithError:(NSError *)error;
@end
我的代码:
我的定义class
class MyClasse: UITableViewController, FBSDKAppInviteDialogDelegate
调用邀请对话框:
var inviteDialog:FBSDKAppInviteDialog = FBSDKAppInviteDialog()
if(inviteDialog.canShow()){
let appLinkUrl:NSURL = NSURL(string: "http://mylink.com")!
let previewImageUrl:NSURL = NSURL(string: "http://mylink.com/image.png")!
var inviteContent:FBSDKAppInviteContent = FBSDKAppInviteContent(appLinkURL: appLinkUrl)
inviteContent.previewImageURL = previewImageUrl
inviteDialog.content = inviteContent
inviteDialog.delegate = self
inviteDialog.show()
}
协议方法的实现:
//function of FBSDKAppInviteDialogDelegate
func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didCompleteWithResults results: NSDictionary!){
// my code here
}
//function of FBSDKAppInviteDialogDelegate
func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didFailWithError error: NSError!){
// my code here
}
邀请对话框有效。但是没有协议我无法得到结果。
我在这里缺少什么?
问题出在 NSDictionary 上。以下对我有用:
func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didCompleteWithResults results: [NSObject : AnyObject]!) {
println("Complete invite without error")
}
func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didFailWithError error: NSError!) {
println("Error in invite \(error)")
}