Objective-C中是否有類似C++的安全鑄造?我知道它們在Objective C++中,但我不確定可能產生的副作用。使用Objective C++可能會減慢編譯時間 - 是否有其他原因不使用它?目標C中的安全鑄造
8
A
回答
9
Objective-c確實擁有C++安全的強制轉換。或者,我們可以使用運行時反射:
id myOb=[someObject getObject];
NSAssert([myOb isKindOfClass:[MyClass class]], @"Return value is not of type MyClass as expected.");
MyClass * newOb= (MyClass *)myOb;
參考文獻:
-1
0
你可以打開編譯器標誌來警告你這種情況。這個特殊的錯誤會被-Wconversion標誌所捕獲。
+0
-Wconversion似乎錯過了錯誤,並提出了很多虛假錯誤 – Casebash 2010-02-03 22:51:23
相關問題
- 1. Objective-C安全鑄造宏
- 2. 安全鑄造
- 3. 對象鑄造目標-c
- 4. 在目標C中阻塞的鑄造方法目標C
- 5. 普通鑄造VS在目標橋鑄造 - Visual C
- 6. 用目標C鑄造下來
- 7. 在python中進行安全鑄造
- 8. 是鑄造char在C#中的安全操作?
- 9. 安全鑄造VARCHAR在Teradata的
- 10. Java的鑄造和C++的鑄造
- 11. 不安全的鑄造問題,如何投入類型安全?
- 12. 安全鑄造,但EXC_BAD_ACCESS無論如何
- 13. 目標C中的子類化和鑄造
- 14. 使用ArrayList條目進行不安全鑄造
- 15. XML安全目標-c
- 16. C++類鑄造
- 17. C#鑄造
- 18. 鑄造在C#
- 19. c中的類型鑄造#
- 20. 目標C - Box2D的浮子式鑄造:上FLOAT32
- 21. 目標C語法鑄造的NSNumber到int
- 22. 目標C - 鑄造操作int值的NSString
- 23. C++鑄造運營商和傳統的C鑄造運營商
- 24. 在C中鑄造「div」#
- 25. 鑄造C++問題
- 26. C#泛型鑄造
- 27. C:鑄造警告
- 28. C#鑄造問題
- 29. C#鑄造奇怪
- 30. 動態鑄造C#
什麼是錯誤的,什麼是演員?如果演員將對象轉換爲其他類型(即從'id'到'NSString *'),則可能會影響編譯器如何選擇使用哪個選擇器(如果有多個具有不同簽名的選擇器)。 – dreamlax 2010-02-03 05:16:11
在這種情況下,您不能使用'dynamic_cast'(目標不是指向**類**的指針或引用)。改用'static_cast'。 – kennytm 2010-02-03 06:09:41
@KennyTM:謝謝,現在修復它 – Casebash 2010-02-03 06:55:46