如何访问另一个struct值

时间:2018-02-21 15:36:38

标签: swift dictionary struct

我有一个结构字典,我需要从中提取一个URL。所以我的问题是如何在Articles使用该值之后抓住rssUrl结构值SafariServices来使用它?

struct Article {
    let rssUrl: String
    let text: String

    init(dict: [String : String]){
        text = dict["text"] ?? ""
        rssUrl = dict["rssUrl"] ?? ""

    }
}

抓住价值并在此处使用

struct dataUrl {
    //grab rssUrl to use later as an Url

}

2 个答案:

答案 0 :(得分:2)

如果您询问如何从Article结构访问属性,则只需使用标准点符号 -

let article = Article(dict: yourdictionaryobject)
article.rssUrl // returns your url 

答案 1 :(得分:2)

延长@Chris'回答:

你最多需要传递引用Article这很有趣,因为结构是值类型,而不是引用。

struct Article {
    let rssUrl: String
    let text: String

    init(dict: [String : String]){
        text = dict["text"] ?? ""
        rssUrl = dict["rssUrl"] ?? ""

    }
}


    struct dataUrl {
       let someOtherURL: URL
        //grab rssUrl to use later as an Url

    }

在某些情况下:

func doSmth() {
 let article = Article(dict: dictionary)

 // You need to unwrap this first
 if let someOtherURL = URL(string: article.rssUrl) {
   let dataURL = DataURL(someOtherURL)  
 } 
} 

在其他情况下,您可以在Article对象中设置dataUrl依赖关系,并使用文章

进行初始化
  struct dataUrl {

       let article: Article

       /// Create get-only variable like this to return immediately.
       var someOtherURL: URL? {
         return URL(string: article.rssUrl) 
       }

    }