解析v1.7.4和Facebook SDK NSInvalidArgumentException',原因:'+ [NSData PF_dataFromBase64String:]:无法识别的选择器发送到类

时间:2015-05-22 13:04:15

标签: ios objective-c parse-platform facebook-login facebook-ios-sdk

将FB和Parse " +"升级到最新版本后,我收到此错误。我知道这会发生在我的app委托中,方法如下。

我有一个混合的快速和客观的c应用程序,我的委托是用Objective C编写的,当我正在为下一个版本工作时,我正在转换并在Swift中编写新类。如果我注释掉下面的处理程序错误没有发生,但我得到一个登录失败的消息,这是我所期望的。按下登录按钮后,将显示授权应用程序的Facebook页面,然后返回到视图控制器,此时下面的方法完成后发生错误。

我理解这个错误的含义,因为在没有它的类上调用了一个选择器。我遇到的问题是我已经检查过所有框架都存在,并且这个调用似乎是在PARSE或Facebook SDK中发生的,所以我看不出如何纠正这个问题。任何人都可以帮助解决为什么这个电话失败。

非常感谢。

SDK

1 个答案:

答案 0 :(得分:2)

问题不在于你。它是由1.7.4版创建的。我也面对面了。此临时修订是NSData上的一个类别,它提供了缺少的选择器。这是一个标题NSData+PFData.h

@import Foundation;

@interface NSData (PFData)
+ (NSData *) PF_dataFromBase64String: (NSString *) base64;
- (NSString *) PF_base64EncodedString;
@end

实施NSData+PFData.m

#import "NSData+PFData.h"

@implementation NSData (PFData)

+ (NSData *) PF_dataFromBase64String: (NSString *) base64 {
    return [NSData.alloc initWithBase64EncodedString: base64 options: 0];
} // +PF_dataFromBase64String:

- (NSString *) PF_base64EncodedString {
    return [self base64EncodedStringWithOptions: 0];
} // -PF_base64EncodedString

@end

您应该计划在不再需要时删除此类别,例如使用Parse v1.7.5。