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

+行頭の は、これをクラス メソッドにします。つまり、クラスにしか送信できisCameraDeviceAvailableませそのクラスのインスタンスでメソッドを使用する場合は、 の-代わりにa を使用して、そのように宣言する必要があります+

-(BOOL)isCameraDeviceAvailable

isCameraDeviceAvailableまたは、Kashiv が説明しているように、代わりにクラスに送信することで、メソッドをそのまま使用できます。詳細については、Objective-C クラスもオブジェクトを参照してください。

于 2012-12-26T22:55:27.260 に答える