重复整个数组的代码

时间:2015-09-06 14:16:25

标签: ios iphone arrays swift

我在我的应用程序中使用了一些Facebook ID,并且我有一系列ID,数组可以是10个数字,但也可以是500个数字.. 现在这些数字显示在一个tableview中,我也想要所有的结果,所以它们需要在一个数组中。

let profileUrl = NSURL(string:"http://www.facebook.com/" + newArray[0])!
let task = NSURLSession.sharedSession().dataTaskWithURL(profileUrl) { 
    (data, response, error) -> Void in
    // Will happen when task completes
    if let urlContent = data {
        let webContent = NSString(data: urlContent, encoding: NSUTF8StringEncoding)
        dispatch_async(dispatch_get_main_queue(), 
            { () -> Void in
            let websiteArray = webContent!.componentsSeparatedByString("pageTitle\">")
            //print(websiteArray[1])
            let secondArray = websiteArray[1].componentsSeparatedByString("</title>")
            print(secondArray[0])
            })
    }
}

此代码获取数组的第一个数字,转到facebook.com/ [实际数字],然后下载数据并将数据拆分成碎片,以便我想要它在secondArray中的数据[0 ]。我想为每个数组执行此操作,获取结果数据并将其放回到数组中。我不知道怎么做,因为你不知道会有多少数字等等,有人有一个很好的解决方案吗?

真的很感激任何帮助!

由于

2 个答案:

答案 0 :(得分:0)

重复整个array的代码,将代码置于循环中,并将该循环从0运行到array.count-1 您不需要知道数组中有多少项。您可以在运行时获取计数array.count此处array是您的数组。

我希望这是你想知道的,但你的问题没有多大意义。

答案 1 :(得分:0)

这里有几个问题,你应该一次拿一个来构建你的解决方案。

首先,暂时忘掉桌子。不要担心你将如何显示这些结果。只需专注于以简单的形式获得结果,然后您将返回并将该简单表单转换为易于显示的内容,然后您将显示它。

首先,我们想要一个简单的形式。这有点复杂,因为它都是异步的。但这并不难解决。

func fetchTitle(identifier: String, completion: (title: String) -> Void) {
    let profileUrl = NSURL(string:"http://www.facebook.com/" + identifier)!
    let task = NSURLSession.sharedSession().dataTaskWithURL(profileUrl) {
        (data, response, error) -> Void in
        if let urlContent = data {
            let webContent = NSString(data: urlContent, encoding: NSUTF8StringEncoding)
            let websiteArray = webContent!.componentsSeparatedByString("pageTitle\">")
            let secondArray = websiteArray[1].componentsSeparatedByString("</title>")
            let title = secondArray[0]
            completion(title: title)
        }
    }
    task.resume()
}

现在这仍然是非常糟糕的代码,因为它根本不处理错误,但它是一个起点,最重要的部分就在这里。一个接受字符串的函数,当它完成取物时,会调用一些完成处理程序。

(关于错误处理,请注意如果返回了令人惊讶的数据,这些代码会崩溃多少个地方。也许你得到的数据不是正确的字符串。也许它的格式不像你想象的那样。每次你使用{ {1}}或下标一个数组,你冒着崩溃的风险。尽量减少这些。)

所以你可以把它包装成类似的东西:

!

这只是让您走上正确轨道并开始研究正确事物的代码。它当然需要工作才能成为生产质量(特别是处理错误)。

一旦你有正确返回你的标题的东西,你应该能够编写一个除了获取标识符列表并打印出标题列表之外什么都不做的程序。然后,您可以添加代码以将该列表集成到tableview中。保持零件分开。标题是模型。该表是视图。阅读模型 - 视图 - 控制器范例,您将处于良好状态。