我正在尝试定义此方法
- (void)backgroundFetchWithCompletion:(void(^)(UIBackgroundFetchResult))completionHandler;
但是我在UIBackgroundFetchResult上收到错误,说只允许没有类型的参数列表,我正在按照本教程和tutorial进行操作,这就是他们定义方法的方法。
答案 0 :(得分:3)
在最后执行某些操作后,您必须在列表中调用一个。
目标-C
completionHandler(UIBackgroundFetchResultNewData);
completionHandler(UIBackgroundFetchResultFailed);
completionHandler(UIBackgroundFetchResultNoData);
夫特
completionHandler(.NewData)
completionHandler(.Failed)
completionHandler(.NoData)
完整示例:
目标-C
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
NSLog(@"performFetchWithCompletionHandler");
//Perform some operation
completionHandler(UIBackgroundFetchResultNewData);
}
夫特
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
println("performFetchWithCompletionHandler")
//Perform some operation
completionHandler(.NewData)
}
答案 1 :(得分:1)
[编辑]这是我的一个较老的答案,请参考AbdullahDiaa的答案,以获得更好/更正确的解决方案。
我刚遇到同样的问题,解决方案是将此添加到定义了该块的方法的文件中:
#import "AppDelegate.h"
答案 2 :(得分:1)
只需确保在头文件中导入UIKit.h:
#import <UIKit/UIKit.h>