arrays - fatal error - 在 for 循环中为数组赋值

标签 arrays swift

我有一个简单的 TwitterTweet 结构:

struct TwitterTweet {
    let userName: String
    let userDescription: String
    let userFollowersCount: Int
    let userProfileImage: String
    let tweetText: String
    let tweetRetweetCount: Int
    let tweetFavouriteCount: Int
}

和一个 TwitterTweet 结构数组:

//var twitterTweets: [TwitterTweet]?
var twitterTweets = [TwitterTweet]()

我检索 JSON 数据并将其解析为 NSDictionary 数组。 在 for 循环中,我创建了一个新的 TwitterTweet,但是当我尝试将它添加到索引 i 处的数组时,出现错误:

fatal error :数组索引超出范围

if let data = NSJSONSerialization.JSONObjectWithData(responseData, options: nil, error: &err) as? [NSDictionary] {
    if data.count != 0 {
        for var i = 0; i < data.count; i++ {
            if let
            tt = data[i]["text"] as? String,
            rc = data[i]["retweet_count"] as? Int,
            tc = data[i]["favorite_count"] as? Int {
                if let ud = data[i]["user"] as? NSDictionary {
                    if let
                    un = ud["name"] as? String,
                    dc = ud["description"] as? String,
                    fc = ud["followers_count"] as? Int,
                    pi = ud["profile_image_url"] as? String {

                        let tweet = TwitterTweet(userName: un, userDescription: dc, userFollowersCount: fc, userProfileImage: pi, tweetText: tt, tweetRetweetCount: rc, tweetFavoriteCount: tc

                        self.twitterTweets[i] = tweet                              
                    }
                }
            }
        }
    }
    else {
        println("no data")
        println("error: \(error)")
    }

我不确定如何分配大小为 data.count 的数组。 我尝试在 for 循环之前添加以下代码

twitterTweets = [TwitterTweet](count: data.count, repeatedValue: nil)

但这对我不起作用。非常感谢任何帮助或建议,因为我已经花了数小时试图找出解决方案。谢谢。

最佳答案

twitterTweets += [tweet]

twitterTweets.append(tweet)

twitterTweets.splice([tweet], atIndex: i)

关于arrays - fatal error - 在 for 循环中为数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30353777/

相关文章:

c - 三维数组在内存中是如何存储的?

ios - 如何在不打开 Xcode 的情况下直接 React native 应用程序?

ios - 不显示所有用户的用户数据,如何只显示喜欢该登录用户的人的数据?

ios - Swift - 单击按钮后重新启动动画

ios - 当我在调试中放置它时,Xcode 8 不显示任何变量值

Javascript Array 工作正常,但如果你离开页面会重新开始

arrays - 在 ThreeJS 中将数组数据传递给着色器

ios - UITableView 由于可重用单元而混合值

c - FOR 循环中的字符串

swift - 使用 SwiftUI 组合刷新 token