gpt4 book ai didi

ios - 使用 iOS 8.2 "unrecognized selector sent to instance"在 Facebook 中邀请 friend 的应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:15:53 25 4
gpt4 key购买 nike

我按照 facebook 文档从这里开发邀请 friend 到 ios 应用程序:App Invites for iOS ...这是我的代码:

    @implementation ViewController  
FBSDKAppInviteContent *content;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

content =[[FBSDKAppInviteContent alloc] initWithAppLinkURL:[NSURL URLWithString:@"https://fb.me/1569122770021958"]];
//optionally set previewImageURL
content.previewImageURL = [NSURL URLWithString:@"http://www.jpl.nasa.gov/spaceimages/images/mediumsize/PIA17011_ip.jpg"];
}

然后我定义了一个 Action 按钮如下:

- (IBAction)InviteFriends:(id)sender {
// present the dialog. Assumes self implements protocol `FBSDKAppInviteDialogDelegate`
[FBSDKAppInviteDialog showWithContent:content delegate:sender];
}

但是我收到如下错误:

2015-04-30 19:09:06.850 LoopApp[6338:120645] -[UIButton appInviteDialog:didCompleteWithResults:]: unrecognized selector sent to instance 0x7fbdd870f9d0
2015-04-30 19:09:06.852 LoopApp[6338:120645] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIButton appInviteDialog:didCompleteWithResults:]: unrecognized selector sent to instance 0x7fbdd870f9d0'

它说我还没有定义 appInviteDialog:didCompleteWithResults: 所以我添加了这个方法如下:

- (void) appInviteDialog: (FBSDKAppInviteDialog *)appInviteDialoge didFailWithError:(NSError *)error
{

NSLog(@"Session connection failed with error %@",[error self]);
}

我可以执行所有步骤来选择我的 friend ,当我按下按钮分享它时,它会分享,但当它想要返回到应用程序崩溃时,它会给我与上面相同的错误。如果有人能帮助我解释为什么会这样,我将不胜感激。

 -[UIButton appInviteDialog:didCompleteWithResults:]: unrecognized selector sent to instance 0x7fabc3dbb840
2015-04-30 19:23:29.305 LoopApp[6423:125823] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIButton appInviteDialog:didCompleteWithResults:]: unrecognized selector sent to instance 0x7fabc3dbb840'
*** First throw call stack:
(
0 CoreFoundation 0x000000010ed0ea75 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010e5febb7 objc_exception_throw + 45
2 CoreFoundation 0x000000010ed15d1d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x000000010ec6d9dc ___forwarding___ + 988
4 CoreFoundation 0x000000010ec6d578 _CF_forwarding_prep_0 + 120
5 LoopApp 0x000000010dfb71e1 -[FBSDKAppInviteDialog _invokeDelegateDidCompleteWithResults:] + 297
6 LoopApp 0x000000010dfb70a5 -[FBSDKAppInviteDialog _handleCompletionWithDialogResults:error:] + 67
7 LoopApp 0x000000010dfb6ed9 __28-[FBSDKAppInviteDialog show]_block_invoke + 131
8 LoopApp 0x000000010df92f51 -[FBSDKApplicationDelegate applicationDidBecomeActive:] + 194
9 CoreFoundation 0x000000010ecde7fc __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
10 CoreFoundation 0x000000010ebde204 _CFXNotificationPost + 2484
11 Foundation 0x000000010e158df8 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
12 UIKit 0x000000010f33bfc8 -[UIApplication _stopDeactivatingForReason:] + 363
13 UIKit 0x000000010f350ea2 -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:] + 2648
14 FrontBoardServices 0x0000000112831243 __31-[FBSSerialQueue performAsync:]_block_invoke + 16
15 CoreFoundation 0x000000010ec43c7c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
16 CoreFoundation 0x000000010ec399c5 __CFRunLoopDoBlocks + 341
17 CoreFoundation 0x000000010ec39785 __CFRunLoopRun + 2389
18 CoreFoundation 0x000000010ec38bc6 CFRunLoopRunSpecific + 470
19 GraphicsServices 0x0000000113230a58 GSEventRunModal + 161
20 UIKit 0x000000010f341580 UIApplicationMain + 1282
21 LoopApp 0x000000010df88f93 main + 115
22 libdyld.dylib 0x00000001114ff145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

最佳答案

问题是您将按钮设置为 FBSDKAppInviteDialog 的委托(delegate)。 UIButton 不符合 FBSDKAppInviteDialogDelegate 协议(protocol),因此崩溃。

要解决此问题,请更改您的代码,使委托(delegate)为 nilself(如果 self 符合 FBSDKAppInviteDialogDelegate 协议(protocol)):

- (IBAction)InviteFriends:(id)sender {

[FBSDKAppInviteDialog showWithContent:content delegate:self];
}

关于ios - 使用 iOS 8.2 "unrecognized selector sent to instance"在 Facebook 中邀请 friend 的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29963838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com