![](/img/trans.png)
[英]Getting semantic issue “property tabBarItem not found on object of type FeedViewController” on xcode 6, but on xcode 5.1.1 its working fine
[英]Xcode error: Semantic Issue, Property 'className' not found on object type 'GKEntity *'
最近我開始從 Xcode 收到這個錯誤:
這個 'className' 屬性屬於 NSObject。 這是官方文檔。
為什么會發生這種情況,我該如何解決(不避免使用此屬性) ?
奇怪的是,幾天前完全相同的代碼在 macOS 和 iOS 目標上運行良好。 然后它在構建成功完成后開始顯示此錯誤(我可以很好地運行該項目),但現在 iOS 目標甚至不會構建......
我嘗試(1)多次清除我的derivedData文件夾,(4)進行干凈的結帳,(3)重新啟動Xcode,以及(2)重新啟動系統,所有這些都以正確的順序進行,但沒有成功......
我在macOS 10.12.3上使用Xcode 版本 8.2.1 ,我的部署目標是 iOS 10.2 和 macOS 10.12。
我找不到任何解釋為什么該屬性已被刪除,但似乎確實如此!
我確實找到了一個解決方案, Get class name of object as string in Swift
String(describing: type(of: self))
正如@JamesP 在上面的評論中指出的那樣,className 屬性被明確記錄為僅存在於 macOS 10.0+ 上,而不存在於 iOS 上,我沒有注意到...
這意味着我的問題來自於我在開發過程中將實現的目標設置從僅 macOS 更改為 macOS 和 iOS。
因為我使用的是 Objective-C,所以我最終將entity.className
替換為
NSStringFromClass([entity class])
@Russel 的答案展示了如何在 Swift 中解決這個問題。
一個整潔的小擴展應該可以解決問題。
public extension NSObject {
var nameOfClass: String {
String(describing: type(of: self))
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.