簡體   English   中英

Xcode中的表達式結果未使用錯誤

[英]Expression Result Unused Error in Xcode

為什么會出現此錯誤?

if(appDelegate.lastLevelIndex!=0) {
        [self.view addSubview:creditView];
        NSString *level=[NSString stringWithFormat:(@"%d",appDelegate.lastLevelIndex)];
        label.text=level;
        appDelegate.lastLevelIndex=0;
    }

由於原始錯誤,我在這里也崩潰了。

在此處刪除括號:

NSString *level=[NSString stringWithFormat:(@"%d",appDelegate.lastLevelIndex)];
                                           ^                                ^

導致:

NSString *level=[NSString stringWithFormat:@"%d",appDelegate.lastLevelIndex];

方法stringWithFormat:需要一個逗號分隔的參數列表。 第一個參數是用作模板的格式字符串,其余參數值將替換為該模板。

但是,在放置了括號的情況下,您正在將單個參數傳遞給stringWithFormat:這是對括號中包含的表達式進行求值的結果。

(@"%d",appDelegate.lastLevelIndex)
      ^

在C中,並通過擴展,在Objective-C中,從左到右對由逗號分隔的表達式列表進行求值,結果的類型和值就是右操作數的類型和值。

因此,要傳遞的值appDelegate.lastLevelIndex ,的整數,作為唯一的參數到stringWithFormat:方法,它需要一個NSString * 因此,崩潰。 “表達式結果未使用”警告是由於左表達式@"%d"不起作用的緣故。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM