标签: bftask

类型参数不能应用于PFAnalytics和PFObject中的非参数化类BFTask

我已将我的项目更新到iOS 9,我的podfile和所有必需的文件,但它不会构建.我悲伤的根源是以下错误消息:

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

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

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

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

代码示例如下:在PFObject.h和中PFAnalytics.h,到处都有以下内容:

(BFTask PF_GENERIC(XXSOMECLASS *)*) someMethod; 
Run Code Online (Sandbox Code Playgroud)

抛出错误.这是不是我的代码,它是PFObject.hPFAnalytics.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
Run Code Online (Sandbox Code Playgroud)

当点击停止标志时,建议是删除PF_GENERIC(NSNumber*),导致这样的方法

 - (BFTask *)xxsomeMethod; 
Run Code Online (Sandbox Code Playgroud)

但这并没有帮助,因为它变得更加混乱

更新02:我的内容Podfile:

# Uncomment this line to define a global platform for your …
Run Code Online (Sandbox Code Playgroud)

objective-c parse-platform pfobject bftask

13
推荐指数
1
解决办法
3325
查看次数

使用[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions](semaphore_wait_slow陷阱)解析自Facebook 4.0.x以来的登录挂起

自从更新Facebook到v4.0.x和最新的Parse库以来,我的应用程序正在挂起,似乎在尝试登录用户时.

我的堆栈跟踪如下所示:

在此输入图像描述

我之前遇到过类似的问题,在这里回答:调用[PFFacebookUtils initializeFacebook]时解析崩溃 - semaphore_wait_trap

然而,该解决方案不再有效,因为它似乎[PFUser currentUser]已被替换,[PFUser(Private) _getCurrentUserWithOptions:]并且[BFTask(Private) waitForResult:withMainThreadWarning:]它被卡住了.

在我的应用程序中,我将PFUser子类化为一个名为MPLUser的类,并重写了用户方法.不确定这可能与问题有关吗?

+ (MPLUser *)user
{
    return (MPLUser *)[PFUser user];
}
Run Code Online (Sandbox Code Playgroud)

一旦开始发生,就无法启动应用程序.但是,我通常设法在锁定开始之前启动应用程序几次.它通常发生在崩溃之后...

我正在使用pod'ParseFacebookUtilsV4'并将所有库更新到最新版本.

更新:

这是来自另一个线程的更多堆栈跟踪,似乎正在尝试登录:

在此输入图像描述 在此输入图像描述

我按以下顺序初始化Parse和Facebook.如果我拨打电话,它会崩溃:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self initDefaults];
    [self initialiseApplicationSpecifics];
    [self setupParseWithOptions:launchOptions];
    [self enableCrashReporting];
    [self setupIAPs]; 
//etc... 
}


- (void)initialiseApplicationSpecifics
{
    [Flurry setCrashReportingEnabled:YES];
    [self registerParseSubclasses];
    [ParseCrashReporting enable];
    [Parse enableLocalDatastore];
#ifdef MPL
    [Parse setApplicationId:@"xxxyyy"
                  clientKey:@"xxxyyy"];
    [Flurry startSession:@"xxxyyy"];
#elif MGM
    [Parse setApplicationId:@"yyyxxx"
                  clientKey:@"yyyxxx"];
    [Flurry startSession:@"yyyxxx"];
#endif
}

- (void)setupParseWithOptions:(NSDictionary *)launchOptions …
Run Code Online (Sandbox Code Playgroud)

objective-c parse-platform pfuser pffacebookutils bftask

7
推荐指数
1
解决办法
538
查看次数

在Bolts Framework中实现可以取消的任务(BFTask)

BFTask我一直很好,但我有一个抱怨:​​我还没有看到一个关于你应该如何cancel完成任务的实例.关于这个主题的整个文档可以在他们的GitHub页面找到,其中包含一个简短的部分,其中包括我关心的部分:如何取消任务.

// Somewhere else.
MYCancellationToken *cancellationToken = [[MYCancellationToken alloc] init];
[obj doSomethingComplicatedAsync:cancellationToken];

// When you get bored...
[cancellationToken cancel];
Run Code Online (Sandbox Code Playgroud)

他们的代码片段后跟:

注意:取消令牌实现应该是线程安全的.

我想知道以下内容:

  1. 有没有充分的理由说他们可能没有cancelBFTask界面本身提供方法?他们有一个属性,表示任务是否被取消,但没有办法取消它.
  2. 有没有充分的理由说他们不会cancellationToken(s)BFTask自己身上加入财产?
  3. 执行是否与cancel任务本身强烈耦合?或者是一般的实现成为可能作为的情况cancelAllOperationsNSOperationQueue

nsoperation ios bolts-framework bftask

7
推荐指数
2
解决办法
2445
查看次数