[英]Property access results unused but NSLog works fine
我試圖在文本標簽中顯示結果,但是得到的結果與NSLog不同:
if( [elementName isEqualToString:@"CommunityID"])
{
self.recordResults = FALSE;
ResultLabel.text = @"CommunityID: %@", self.soapResults;
NSLog(@"CommunityID:%@",self.soapResults);
self.soapResults = nil;
}
NSlog可以正確顯示文本結果,但UILabel不能。 錯誤顯示:
“未使用屬性訪問結果-吸氣劑不應用於副作用”
我不明白NSlog如何很好地獲取信息,而其他人卻不知道? 有任何想法嗎?
您不能直接分配,需要使用stringWithFormat
屬性
ResultLabel.text = [NSString stringWithFormat:@"CommunityID: %@", self.soapResults];
如此您就知道發生了什么以及編譯器警告是關於什么的……
在C和Objective-C中,不分隔函數或方法調用中的參數的逗號( ,
)是逗號運算符。 它是一個復合表達式。 評估左手子表達式,但其結果被丟棄。 然后,評估右手子表達式,並且整個復合表達式取其值。
在您的情況下,復合表達式僅用作語句,而未使用其結果。 因此,您的聲明:
ResultLabel.text = @"CommunityID: %@", self.soapResults;
等於:
ResultLabel.text = @"CommunityID: %@";
self.soapResults;
這些語句的第二個調用屬性獲取器,並丟棄結果值。 編譯器警告您。 要么您不是要這樣做(在這種情況下),要么是您要調用吸氣劑,因為吸氣劑具有您想要的副作用,這是一個非常糟糕的主意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.