13

我已将我的项目更新到 iOS 9、我的 podfile 和所有必要的文件,但它不会构建。我悲痛的根源在于以下错误消息:

Type arguments cannot be applied to non-parameterized class 'BFTask'

这是唯一显示的错误,但它在两者中多次出现PFAnalytics.h,可能更重要的是PFObject.h

有人能告诉我这意味着什么,请提出解决方案吗?我希望我提供了足够的信息,但如果没有,请告诉我!

**更新 01:** 我无法发布错误的屏幕截图,因为我的声誉还不够。

代码示例如下: 在PFObject.hPFAnalytics.h中,处处有以下内容:

(BFTask PF_GENERIC(XXSOMECLASS *)*) someMethod; 

错误被抛出。这不是我的代码,它是PFObject.h并且PFAnalytics.h如前所述。抛出错误的函数示例PFObject.h如下

- (BFTask PF_GENERIC(NSNumber *)*)saveInBackground; 
- (BFTask PF_GENERIC(NSNumber *)*)saveEventually;
- (BFTask PF_GENERIC(NSNumber *)*)deleteInBackground;
+ (BFTask PF_GENERIC(NSNumber *)*)saveAllInBackground:(PF_NULLABLE NSArray *)objects;
+ (BFTask PF_GENERIC(NSNumber *)*)deleteAllInBackground:(PF_NULLABLE NSArray *)objects;
// .... etc

单击停止标志时,建议删除 PF_GENERIC(NSNumber *),从而产生这样的方法

 - (BFTask *)xxsomeMethod; 

但这无济于事,因为它变得更加混乱

更新 02:我的内容Podfile

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'

target: 'BMR' do 
    pod 'AFNetworking', '~> 2.6' 
    pod 'ParseFacebookUtils', '~> 1.8' 
    pod 'Parse' 
    pod 'ParseUI', '~> 1.1' 
    pod 'FBSDKCoreKit', '~> 4.6' 
    pod 'FBSDKLoginKit', '~> 4.6'
    pod 'JSQMessagesViewController', '~> 7.2'
    pod 'IDMPhotoBrowser', '~> 1.7' 
    pod 'RNGridMenu', '~> 0.1' 
    pod 'APHorizontalMenu', '~> 1.3' 
    pod 'ASIHTTPRequest', '~> 1.8' 
    pod 'AutoScrollLabel', '~> 0.4' 
    pod 'CJAMacros', '~> 2.1' 
    pod 'CrittercismSDK', '~> 5.3'
end
4

3 回答 3

7

确保您没有Bolts.framework 的重复版本

如果您同时使用 Parse SDK 和 Facebook SDK,您将遇到 Parse SDK 包含较旧版本的 Bolts(当前为 1.1.5)而 FB SDK 包含最新版本的 Bolts SDK(>= 1.2.2)的问题

一旦你删除了 Parse SDK 附带的旧版本,Bolt.framework你应该没问题。

要检查您使用的 Bolts.SDK 版本,只需转到该Bolts.framework文件,右键单击并选择“获取信息”。

于 2015-09-20T15:25:29.607 回答
0

我遇到了同样的问题(花了几个小时调查发生了什么)。我把旧的 FacebookSDK 框架和我通过 cocoapods 安装的框架搞砸了

  1. 查看以下路径~/Documents/FacebookSDK看看是否有一些过时的SDK
  2. 删除 Facebook SDK 的任何导入#import <FacebookSDK/FacebookSDK.h>
  3. 通过 cocoapods 安装它
    pod 'FBSDKCoreKit' pod 'FBSDKLoginKit' pod 'FBSDKShareKit'
    或手动添加新框架。
于 2015-11-15T19:59:43.993 回答
0

你有两个Bolts.framework,旧的来自 FacebookSDK,新的来自 Parse。因此,转到您FacebookSDKBolts.framework. 保持新的Bolts.framework,现在一切都会好起来的。

如果您仍然无法找到旧的Bolts.framework找到显示错误的类文件并右键单击它并选择在 finder 中显示并从 finder 中追溯 facebook 文件夹并确保它在 Facebook SDK 文件夹中并删除Bolts.framework. 确保不要删除从 Parse SDK 文件夹中添加的新 Bolts.framework。

于 2015-10-26T15:56:00.923 回答