簡體   English   中英

如何在Swift中訪問嵌套對象?

[英]How do you access nested objects in Swift?

以下是println(newArticle)的讀數

我可以使用newArticle.paragraphs [0]訪問一個段落。 如何獲得句子[0]? (或者甚至是我應該嘗試訪問的內容?)

我已經嘗試過newArticle.paragraphs [0] .sentences [0],但是遇到一個錯誤消息,說“ AnyObject”沒有名為“ sentences”的成員。

Article {
    title = test;
    viewed = 0;
    paragraphs = RLMArray <0x7c986ec0> (
    [0] Paragraph {
        sentences = RLMArray <0x7c999da0> (

    );
        paragraphContent = 1最初,上帝創造了天地。
    ;
        article = Article {
        title = test;
        viewed = 0;
        paragraphs = RLMArray <0x7c9b4af0> (
        [0] <Maximum depth exceeded>,
        [1] <Maximum depth exceeded>,
        [2] <Maximum depth exceeded>,
        [3] <Maximum depth exceeded>
    );
        articleContent = 1最初,上帝創造了天地。
    2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
    3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
        dateAdded = 2014-12-16 15:12:29 +0000;
    };
    },
    [1] Paragraph {
        sentences = RLMArray <0x7c9b7dc0> (

    );
        paragraphContent = 2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
    ;
        article = Article {
        title = test;
        viewed = 0;
        paragraphs = RLMArray <0x7c9b6720> (
        [0] <Maximum depth exceeded>,
        [1] <Maximum depth exceeded>,
        [2] <Maximum depth exceeded>,
        [3] <Maximum depth exceeded>
    );
        articleContent = 1最初,上帝創造了天地。
    2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
    3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
        dateAdded = 2014-12-16 15:12:29 +0000;
    };
    },
    [2] Paragraph {
        sentences = RLMArray <0x7c9b6880> (

    );
        paragraphContent = 3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
        article = Article {
        title = test;
        viewed = 0;
        paragraphs = RLMArray <0x7c9b66c0> (
        [0] <Maximum depth exceeded>,
        [1] <Maximum depth exceeded>,
        [2] <Maximum depth exceeded>,
        [3] <Maximum depth exceeded>
    );
        articleContent = 1最初,上帝創造了天地。
    2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
    3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
        dateAdded = 2014-12-16 15:12:29 +0000;
    };
    },
    [3] Paragraph {
        sentences = RLMArray <0x7c9b6820> (

    );
        paragraphContent = ;
        article = Article {
        title = test;
        viewed = 0;
        paragraphs = RLMArray <0x7c9b9650> (
        [0] <Maximum depth exceeded>,
        [1] <Maximum depth exceeded>,
        [2] <Maximum depth exceeded>,
        [3] <Maximum depth exceeded>
    );
        articleContent = 1最初,上帝創造了天地。
    2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
    3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
        dateAdded = 2014-12-16 15:12:29 +0000;
    };
    }
);
    articleContent = 1最初,上帝創造了天地。
2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
    dateAdded = 2014-12-16 15:12:29 +0000;
}

這是我在println(newArticle.paragraphs [0] .description)時看到的內容

Paragraph {
    sentences = RLMArray <0x78f7b920> (

);
    paragraphContent = 1最初,上帝創造了天地。
;
    article = Article {
    title = test;
    viewed = 0;
    paragraphs = RLMArray <0x78f7b570> (
    [0] Paragraph {
        sentences = RLMArray <0x78f7bdf0> (

    );
        paragraphContent = 1最初,上帝創造了天地。
    ;
        article = Article {
        title = test;
        viewed = 0;
        paragraphs = <Maximum depth exceeded>;
        articleContent = 1最初,上帝創造了天地。
    2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
    3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
        dateAdded = 2014-12-16 15:12:29 +0000;
    };
    },
    [1] Paragraph {
        sentences = RLMArray <0x78f7c720> (

    );
        paragraphContent = 2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
    ;
        article = Article {
        title = test;
        viewed = 0;
        paragraphs = <Maximum depth exceeded>;
        articleContent = 1最初,上帝創造了天地。
    2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
    3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
        dateAdded = 2014-12-16 15:12:29 +0000;
    };
    },
    [2] Paragraph {
        sentences = RLMArray <0x78f7c1f0> (

    );
        paragraphContent = 3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
        article = Article {
        title = test;
        viewed = 0;
        paragraphs = <Maximum depth exceeded>;
        articleContent = 1最初,上帝創造了天地。
    2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
    3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
        dateAdded = 2014-12-16 15:12:29 +0000;
    };
    },
    [3] Paragraph {
        sentences = RLMArray <0x78f7f240> (

    );
        paragraphContent = ;
        article = Article {
        title = test;
        viewed = 0;
        paragraphs = <Maximum depth exceeded>;
        articleContent = 1最初,上帝創造了天地。
    2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
    3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
        dateAdded = 2014-12-16 15:12:29 +0000;
    };
    }
);
    articleContent = 1最初,上帝創造了天地。
2大地混沌蒼茫,深淵的表面一片黑暗。上帝發出的動力運行在水面上。
3上帝說:“要有光。”光就出現了。4上帝看光是好的。上帝把光暗分開了。5上帝稱光為“晝”,稱暗為“夜”。過了晚上,到了早晨,是第一日。;
    dateAdded = 2014-12-16 15:12:29 +0000;
};
}

您需要將要從段落中拉出的對象轉換為段落。 Swift只知道該對象是AnyObject,而AnyObject沒有“句子”屬性,因此它抱怨。

就像是

let paragraph = newArticle.paragraphs[0] as Paragraph
println(paragraph.sentences[0])

或者,為了更安全,

if let paragraph = newArticle.paragraphs[0] as? Paragraph {
    println(paragraph.sentences[0])
}

暫無
暫無

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

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