簡體   English   中英

“Type'Program'不符合'任何對象'協議”

[英]“Type'Program' does not conform to protocol 'Any Object'”

我更新了xcode,現在我的項目出錯,我不知道如何處理它。

struct Program {
    let name : String
    let url : String
}

self.arrayOfPrograms = [Program(name: "First", url: "http://1.com"), Program(name: "Second", url: "http://2.com"), Program(name: "Third", url: "http://2.com")]

我收到錯誤“Type'Program'不符合協議'任何對象'”

文檔中所述:

AnyObject可以表示任何類類型的實例。

struct不是類,因此無法AnyObjectAnyObject

你應該:

  • Program變成一個類
  • 將數組定義為Array<Any>
  • 如果您的數組應該只保存Program實例,請將其聲明為Array<Program>

不用說,最后一個是最好的解決方案,而第一個是我不推薦的解決方案,因為它需要你進行設計更改(這就是為什么你將它聲明為值類型而不是引用類型的原因)。

旁注:數組和字典可以轉換為AnyObject因為它們分別自動橋接到NSArrayNSDictionary ,它們是類。

檢查這個鏈接你得到了你的answare我最近把我的腦袋包裹在Swift中我發現很奇怪的東西。 Swift提供了兩個名為Any和AnyObject的高級協議。 任何可以用於值類型(如結構)和引用類型(類),而AnyObject只能用於類。

在此輸入鏈接描述

暫無
暫無

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

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