_NSInlineData base64EncodedString - 发送到实例的无法识别的选择器

时间:2014-04-17 16:19:18

标签: ios objective-c cocoapods unrecognized-selector evernote

我基于Evernote SDK sample在XCode中创建了一个ipad项目。测试OAuth的方法有效。我从项目中的直接来源切换到CocoaPods pod 'Evernote-SDK-iOS', '~> 1.3',现在我得到了以下异常。

当它停止工作时,我注意到我正在运行模拟器,用于" iPad"无意的。我使用过" iPad Retina 64bit"在它开始工作之前。当我切换到64位时,它工作。我试用了直接来源的版本而不是pods和#34; iPad"它打开的版本授权弹出窗口,当我登录时,我能够登录" iPad"在CocoaPods版本中....似乎在CocoaPods版本中存在授权问题,而不是模拟器之间的区别......当我第一次使用我的旧代码授权我的应用程序时它才有效...

知道项目中的直接源代码与使用CocoaPods之间的区别是什么?

我在第153行得到了异常:return [data base64EncodedString];在文件ENGCOAuth.m

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_NSInlineData base64EncodedString]: unrecognized selector sent to instance 0x958ca10'
*** First throw call stack:
(
    0   CoreFoundation         0x01b001e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib        0x009538e5 objc_exception_throw + 44
    2   CoreFoundation         0x01b9d243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
    3   CoreFoundation         0x01af050b ___forwarding___ + 1019
    4   CoreFoundation         0x01af00ee _CF_forwarding_prep_0 + 14
    5   MemloNotepad           0x001d378a -[ENGCOAuth signature] + 618
    6   MemloNotepad           0x001d3187 -[ENGCOAuth authorizationHeader] + 167
    7   MemloNotepad           0x001d2fb5 -[ENGCOAuth request] + 245
    8   MemloNotepad           0x001d4dba +[ENGCOAuth URLRequestForPath:GETParameters:scheme:host:consumerKey:consumerSecret:accessToken:tokenSecret:] + 1082
    9   MemloNotepad           0x001eb38c -[EvernoteSession startOauthAuthentication] + 348
    10  MemloNotepad           0x001ead7e __68-[EvernoteSession authenticateWithViewController:completionHandler:]_block_invoke + 558
    11  MemloNotepad           0x001cfec7 __44-[ENAPI invokeAsyncIdBlock:success:failure:]_block_invoke_2 + 55

注意:我已经在Evernote forum中提出了这个问题,但我差不多一个月没有得到任何答复。

1 个答案:

答案 0 :(得分:1)

另一个StackOverflow question帮我解决了这个问题。

我必须在构建设置中的其他链接器标志中添加$(inherited)。我在其中一个目标中获得了它,但不是在所有目标中。