Arrays Swift 2:如何将动态数量的字符串分配给字符串数组?

Arrays Swift 2:如何将动态数量的字符串分配给字符串数组?,arrays,string,swift,swift2,tvos,Arrays,String,Swift,Swift2,Tvos,上下文: var arrayString : Array<String> = Array() arrayString.append("Hitendra") arrayString.append("Solanki") var arrayString : Array<String> = Array() arrayString.append("Hitendra")//not allowed arrayString.append("Solanki")//not allowed

上下文:

var arrayString : Array<String> = Array()
arrayString.append("Hitendra")
arrayString.append("Solanki")
var arrayString : Array<String> = Array()
arrayString.append("Hitendra")//not allowed
arrayString.append("Solanki")//not allowed
我正在尝试创建一个应用程序,该应用程序根据我正在运行的本地服务器中的文件夹内容填充UICollectionView(tvOS)。我尝试这样做的方式(可能是完全错误的方式)是“刮”我服务器页面的html

我定义了以下属性:

let moviesArray:[String]=[“
  • 示例1
  • ”,“
  • 示例2
  • ”]

    我的UICollectionView将返回UICollectionViewCell的数量等于
    moviesArray.count
    ,因此我需要这个数字(以及我在这个问题中不会涉及的其他数据)

    问题:

    我添加到服务器的文件/文件夹的数量是动态的,并且将根据我添加到服务器或从服务器中删除的电影而增加/减少。这显然会改变返回的html

    下面的代码返回本地服务器URL的html并将其转换为字符串。然后,我基于一个范围创建一个子字符串,然后从html中分离出每个单独的
  • 元素。代码如下:

         do {
    
            let url:NSURL? = NSURL(string: "http://localhost:8888/Files/movies/")
    
            // 'contentsOfURL' returns the html code of the page
            let html:String? = try NSString(contentsOfURL: url!, encoding: NSUTF8StringEncoding) as String
            print(html)
    
            // creates a substring of 'html' based on a range defined below
            let ulString = html![(html?.startIndex.advancedBy(164))!...(html?.endIndex.advancedBy(-22))!]
            print("<ul> substring is: \(ulString)")
    
            // Splits each <li> into a separate string
            let liSplit = ulString.characters.split{$0 == "\n"}.map(String.init)
            print("li 1 is: \(liSplit[0])")
            print("li 2 is: \(liSplit[1])")
            print("li 3 is: \(liSplit[2])")
    
        } catch {
            print("the error is: \(error)")
        }
    
    do{
    让url:NSURL?=NSURL(字符串:http://localhost:8888/Files/movies/")
    //“contentsOfURL”返回页面的html代码
    让html:String?=尝试将NSString(contentsofull:url!,编码:NSUTF8StringEncoding)作为字符串
    打印(html)
    //根据下面定义的范围创建“html”子字符串
    让ulString=html![(html?.startIndex.advancedBy(164))!…(html?.endIndex.advancedBy(-22))!]
    打印(“
      子字符串为:\(ulString)”) //将每个
    • 拆分为单独的字符串 让liSplit=ulString.characters.split{$0==“\n”}.map(String.init) 打印(“li 1是:\(liSplit[0])) 打印(“li 2是:\(liSplit[1])) 打印(“li 3是:\(liSplit[2])) }抓住{ 打印(“错误为:\(错误)”) }
    我的问题:


    如何根据返回的html字符串中
  • 元素的数量,向
    self.moviesray
    添加或删除
    String
    对象?如果
    liSplit
    的每个成员是一个动态数,我将如何将其分配给
    self.moviesArray

    您需要将
    moviesArray
    声明为变量,而不是常量,并对其进行初始化:

    var moviesArray = [String]()
    
    然后,只需将所有检索到的元素添加到其中:

    moviesArray += liSplit
    

    您需要将
    moviesArray
    声明为变量,而不是常量,并对其进行初始化:

    var moviesArray = [String]()
    
    然后,只需将所有检索到的元素添加到其中:

    moviesArray += liSplit
    

    Objective-C中有两种类型的数组, 1)
    NSArray
    2)
    NSMutableArray

    无法向NSArray添加对象或从NSArray中删除对象。 您可以向NSMutableArray添加对象或从中删除对象

    在swift中,我们只有一个数组,即
    Array
    e、 g.
    Array或[String]、Array或[NSURL]等

    如果您使用
    var
    关键字声明数组,它将是可变版本,因此您可以添加或删除对象 例如

    var arrayString : Array<String> = Array()
    arrayString.append("Hitendra")
    arrayString.append("Solanki")
    
    var arrayString : Array<String> = Array()
    arrayString.append("Hitendra")//not allowed
    arrayString.append("Solanki")//not allowed
    
    所以只要换个颜色就行了

    let moviesArray: [String] = ["<li>Example 1</li>", "<li>Example 2</li>"]
    

    Objective-C中有两种类型的数组, 1)
    NSArray
    2)
    NSMutableArray

    无法向NSArray添加对象或从NSArray中删除对象。 您可以向NSMutableArray添加对象或从中删除对象

    在swift中,我们只有一个数组,即
    Array
    e、 g.
    Array或[String]、Array或[NSURL]等

    如果您使用
    var
    关键字声明数组,它将是可变版本,因此您可以添加或删除对象 例如

    var arrayString : Array<String> = Array()
    arrayString.append("Hitendra")
    arrayString.append("Solanki")
    
    var arrayString : Array<String> = Array()
    arrayString.append("Hitendra")//not allowed
    arrayString.append("Solanki")//not allowed
    
    所以只要换个颜色就行了

    let moviesArray: [String] = ["<li>Example 1</li>", "<li>Example 2</li>"]