类型参数不能应用于 PFAnalytics 和 PFObject 中的非参数化 class BFTask
Type arguments cannot be applied to non-parameterized class BFTask in PFAnalytics and PFObject
我已将我的项目更新为 iOS 9、我的 podfile 和所有必要的文件,但它无法构建。我的悲伤源于以下错误消息:
Type arguments cannot be applied to non-parameterized class 'BFTask'
这是唯一显示的错误,但它在 PFAnalytics.h
和可能更重要的 PFObject.h
中多次出现。
谁能告诉我这是什么意思,请提出解决方案?我希望我提供了足够的信息,但如果没有,请告诉我!
代码示例如下:在PFObject.h
和PFAnalytics.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
确保您没有 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
文件,右键单击并选择 "Get Info"。
您有两个 Bolts.framework
,旧的来自 FacebookSDK,新的来自 Parse。因此,转到您将 FacebookSDK
添加到 xcode 的 FacebookSDK 文件夹并删除 Bolts.framework
。保留新的Bolts.framework
,现在一切都会好起来的。
如果您仍然找不到旧的 Bolts.framework
找到显示错误的 class 文件并右键单击它 select 在 finder 中显示并从finder 并确保它在 Facebook SDK 文件夹中并删除 Bolts.framework
。确保您没有删除从 Parse SDK 文件夹中添加的新 Bolts.framework。
我遇到了同样的问题(花了几个小时调查发生了什么)。我把旧的 FacebookSDK 框架和我通过 cocoapods 安装的框架搞混了
- 检查以下路径~/Documents/FacebookSDK是否有一些过时的SDK
- 删除 Facebook SDK 的任何导入
#import <FacebookSDK/FacebookSDK.h>
- 通过 cocoapods 安装它
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
或手动添加新框架。
我已将我的项目更新为 iOS 9、我的 podfile 和所有必要的文件,但它无法构建。我的悲伤源于以下错误消息:
Type arguments cannot be applied to non-parameterized class 'BFTask'
这是唯一显示的错误,但它在 PFAnalytics.h
和可能更重要的 PFObject.h
中多次出现。
谁能告诉我这是什么意思,请提出解决方案?我希望我提供了足够的信息,但如果没有,请告诉我!
代码示例如下:在PFObject.h
和PFAnalytics.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
确保您没有 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
文件,右键单击并选择 "Get Info"。
您有两个 Bolts.framework
,旧的来自 FacebookSDK,新的来自 Parse。因此,转到您将 FacebookSDK
添加到 xcode 的 FacebookSDK 文件夹并删除 Bolts.framework
。保留新的Bolts.framework
,现在一切都会好起来的。
如果您仍然找不到旧的 Bolts.framework
找到显示错误的 class 文件并右键单击它 select 在 finder 中显示并从finder 并确保它在 Facebook SDK 文件夹中并删除 Bolts.framework
。确保您没有删除从 Parse SDK 文件夹中添加的新 Bolts.framework。
我遇到了同样的问题(花了几个小时调查发生了什么)。我把旧的 FacebookSDK 框架和我通过 cocoapods 安装的框架搞混了
- 检查以下路径~/Documents/FacebookSDK是否有一些过时的SDK
- 删除 Facebook SDK 的任何导入
#import <FacebookSDK/FacebookSDK.h>
- 通过 cocoapods 安装它
pod 'FBSDKCoreKit' pod 'FBSDKLoginKit' pod 'FBSDKShareKit'
或手动添加新框架。