ฉันเข้าใจแล้วว่าทำไมคำเตือนตัวแปรที่ไม่ได้ใช้จึงเกิดขึ้น ฉันไม่ต้องการปราบปรามพวกเขาโดยทั่วไปเพราะมันมีประโยชน์อย่างไม่น่าเชื่อในกรณีส่วนใหญ่ อย่างไรก็ตามให้พิจารณารหัส (ที่สร้างขึ้น) ต่อไปนี้
NSError *error = nil;
BOOL saved = [moc save:&error];
NSAssert1(saved, @"Dude!!1! %@!!!", error);
Xcode รายงานว่าsaved
เป็นตัวแปรที่ไม่ได้ใช้งานซึ่งแน่นอนว่าไม่ใช่ตัวแปร ฉันสงสัยว่านี่เป็นเพราะNSAssert1
มาโคร NS_BLOCK_ASSERTIONS
มาโครไม่ได้กำหนดไว้เพื่อวัตถุประสงค์ยืนยัน C มีการใช้งานแน่นอน
แม้ว่ามันจะไม่เจ็บอะไรเลย แต่ฉันพบว่ามันรกและน่ารำคาญและฉันอยากจะระงับมัน แต่ฉันไม่แน่ใจว่าจะทำอย่างไร การกำหนดตัวแปรให้ตัวเองจะกำจัดคำเตือนของคอมไพเลอร์ออกไป แต่ฉันอยากจะทำแบบนั้น "ถูกต้อง" ถ้ามีสิ่งนั้นอยู่จริง
'saved' was marked as unused but was used