3

Mehul 定义了这种方法。

+(BOOL)isCameraDeviceAvailable
{
    BOOL isCameraAvailable=NO;
    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {
        if([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront] || [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear])
            isCameraAvailable = YES;
    }
    return isCameraAvailable;
}

但我无法正确声明它并收到错误

Instance method '-isCameraDeviceAvailable' not found (return type defaults to 'id')

当我声明如下。

+ (BOOL)isCameraDeviceAvailable; 

然后以这种方式使用它

if([self isCameraDeviceAvailable]){
 } 

我想我需要在不同的地方或以不同的方式声明它。你能告诉我怎么做吗?

4

2 回答 2

4
[self isCameraDeviceAvailable]

实例方法调用,不是方法调用

你必须像这样使用它:

[MyClass isCameraDeviceAvailable]
于 2012-12-26T22:45:46.573 回答
3
+(BOOL)isCameraDeviceAvailable

行首+的 使 this 成为一个类方法,这意味着您只能发送isCameraDeviceAvailable该类。如果您想将该方法与该类的实例-一起使用,则需要使用 a而不是+

-(BOOL)isCameraDeviceAvailable

或者,正如 Kashiv 解释的那样,您可以通过发送isCameraDeviceAvailable到类来使用您拥有的方法。有关更多信息,请参阅Objective-C 类也是对象

于 2012-12-26T22:55:27.260 回答