2016-03-06 54 views
-3

我收到以下錯誤:目標C空隙問題 - 發送 '無效' 到不兼容的類型的參數 '身份證_Nonnull'

Sending 'void' to parameter of incompatible type 'id _Nonnull'

以下行:

[comment setObject:[self helloDelegate] forKey:kESActivityToUserKey]; 

基本上I」 m使用委託和我試圖得到的數據是Parse Class列中的ObjectID,其中打印到日誌罰款。所以我知道委託正在工作,問題是我需要這個值來保存到Parse Class Column toUser,其中Xcode警告我上面的錯誤阻止了我運行項目。

下面是我的方法,我打電話:

-(void)helloDelegate { 
    [delegate sayHello:self]; 
} 

下一步是調用上述方法的方法:

-(void)sayHello:(CaptureManager *)customClass { 
    [self.photo objectId]; 
    // NSLog(@"Object id %@",[self.photo objectId]); 
} 

我是相當新的目標C所以請理解,如果我沒有措辭的東西正確。我只需要知道如何擺脫錯誤,以便我可以繼續。

謝謝

+1

開始語法有一本關於編程的第1頁上,不管它是關於的Objective-C,C,Java中,... – Eiko

回答

2

helloDelegate調用委託方法,但不返回任何東西(又名void)。

然而setObject:ForKey:方法需要object參數的對象。

都需要這樣的

- (NSString *)helloDelegate { 
    return [delegate sayHello:self]; 
} 

- (NSString *)sayHello:(CaptureManager *)customClass { 

    return [self.photo objectId]; 
    //NSLog(@"Object id %@",[self.photo objectId]); 
} 
相關問題