我无法从View Controller调用类方法。类方法将BOOL作为输入。 Xcode允许我在没有参数的情况下调用它(显然会崩溃)但是当我传递参数时会抱怨。
以下是相关代码:
// RLI.h
@interface RLI : NSObject <CLLocationManagerDelegate>
...
+(BOOL)askForLocationAccess;
end
// RLI.m
@implementation RLI
...
+(BOOL)askForLocationAccess:(BOOL)ask {
...
return answer;
}
end
// CLOnboardingViewController.m
@implementation CLOnboardingViewController
...
-(IBAction)allowGPSAccess:(id)sender {
// NSLog(@"%@", [sender currentTitle]);
BOOL ask = [[sender currentTitle] isEqualToString:gpsLabel];
[RLI askForLocationAccess:YES]; // No known class method for selector 'askForLocationAccess:'
[RLI askForLocationAccess]; // no complaint but crashes with "unrecognized selector sent to a class"
[RLI askForLocationAccess:ask]; // what I intend to do
...
}
end
如果需要更多代码,请告诉我,但这似乎应该足够直截了当。我查看了一堆“没有已知的选择器类方法”问题,但大多数都是拼写错误或调用实例方法。
答案 0 :(得分:1)
我认为是因为你的头类有没有参数的方法。 这就是你的.h文件中的内容:
+(BOOL)askForLocationAccess;
将其更改为:
+(BOOL)askForLocationAccess:(BOOL)ask;