19
A
回答
4
不,沒有 - 因爲在引擎蓋下Swift類不使用Objective-C內省來完成他們的工作。沒有必要爲了傳遞/調用數據而計算它(就像Objective-C中的那樣)。但是,如果您需要在運行時動態使用它(例如,爲了與現有的Objective-C方法進行互操作),那麼您可以創建一個Objective-C調用並通過或傳遞對象(對於簡單類型)寫一個查找表。
類型編碼在https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html上列出,它們具有映射,並且可以編寫查找的開關類型語句。
但從根本上講,如果你有,你要在傳遞和發現它是Objective C的編碼類型,您可以使用NSObject的的objCType方法的類型:
var i = 1 as NSNumber
String.fromCString(i.objCType)! == "q"
如果需要通過傳遞它作爲一個不受干擾C字符串,你可能甚至不需要將它轉換回Swift字符串類型。
+3
'objCType'是'NSValue'的方法,而不是'NSObject'。 –
相關問題
- 1. python encode()
- 2. .format相當於
- 3. 相當於transaction.transactionReceipt.bytes
- 4. HQL'parsename'相當於
- 5. 相當於WeakHashMap?
- 6. wtol相當於#
- 7. 相當於JDIC?
- 8. 相當於SparkSQL
- 9. Android:getElementsByTagName相當於?
- 10. Fortran相當於
- 11. drupalPost()相當於
- 12. 相當於waitUntilAllOperationsAreFinished
- 13. 相當於
- 14. 相當於AWS
- 15. $ dialog.messageBox相當於
- 16. Linq相當於
- 17. 相當於C#
- 18. Java等於()相當於PHP
- 19. callgrind相當於java?
- 20. ToolStripContainer相當於AutoScrollMinSize
- 21. strtoul相當於C#
- 22. TensorFlow相當於numpy.all()
- 23. iTextSharp相當於XPdfFontOptions
- 24. fsockopen相當於perl
- 25. Java相當於scala.collection.mutable.Map.getOrElseUpdate
- 26. ProgressDialog相當於iOS
- 27. Dart相當於Array.prototype.map()?
- 28. log4j2相當於log4j.defaultInitOverride
- 29. $(this)相當於CsQuery
- 30. ReactiveCocoa相當於Observable.Create
鑑於我們[甚至不能使用自省來確定對象的類型](http://stackoverflow.com/questions/24101450/how-do-you-find-out-the-type-of-一個對象在迅速),我懷疑有一個迅速的等效 - 雖然主演,因爲如果你找到一個解決方案,這將提供至少在我的內省問題的起點;) – Jiaaro
爲什麼你需要這個?你能解釋一下上下文嗎?對於你想要做的事情,可能有一個很好的Swift替代方案。 –
@ St3fan無論如何,我認爲這是一個很好的問題,但是對於上下文來說,參見。第一個代碼塊在[這個SO回答](http://stackoverflow.com/a/24456115/45813) –