从 swift 中的静态内容动态生成 nsarry
dynamically making nsarry from the static content in swift
我必须使用以下代码制作 NSArray Objective C
self.sampleData = @[ @{ @"description": @"Section A",
@"articles": @[ @{ @"title": @"Article A1" },
@{ @"title": @"Article A2" },
@{ @"title": @"Article A3" },
@{ @"title": @"Article A4" },
@{ @"title": @"Article A5" }
]
} ];
我怎么能在 swift 中编写相同的代码,在循环中说太动态了,我想初始化文章 A1、文章 A2 字符串,如 5 个元素将有文章 5。
我不知道你的 Swift 知识,但这里有一种程序化数组的方法:
// in Swift you are using the type Array instead of NSArray
var sampleData = [[String : AnyObject]]() // empty Array of dictionaries
sampleData["description"] = "Section A"
var articles = [[String : String]]() // empty Array of dictionaries
// is the same as for var i = 1; i <= 5; i++ {
for i in 1...5 {
let article = [String : String]()
article["title"] = "Article A\(i)" // using String interpolation
articles.append(dict)
}
// add articles to sampleData
sampleData["articles"] = articles
由于 Swift 的功能方法 map
您还可以将其重写为:
var sampleData = [[String : AnyObject]]() // empty Array of dictionaries
sampleData["description"] = "Section A"
let articles = (1...5).map{ Dictionary(dictionaryLiteral: ("title", "Article A\([=11=])")) }
// add articles to sampleData
sampleData["articles"] = articles
作为一般建议,如果你想使用这样的数据结构作为存储,你应该考虑制作新的结构或 类 像 Section
和 Article
来检查更静态的编译器一.
我必须使用以下代码制作 NSArray Objective C
self.sampleData = @[ @{ @"description": @"Section A",
@"articles": @[ @{ @"title": @"Article A1" },
@{ @"title": @"Article A2" },
@{ @"title": @"Article A3" },
@{ @"title": @"Article A4" },
@{ @"title": @"Article A5" }
]
} ];
我怎么能在 swift 中编写相同的代码,在循环中说太动态了,我想初始化文章 A1、文章 A2 字符串,如 5 个元素将有文章 5。
我不知道你的 Swift 知识,但这里有一种程序化数组的方法:
// in Swift you are using the type Array instead of NSArray
var sampleData = [[String : AnyObject]]() // empty Array of dictionaries
sampleData["description"] = "Section A"
var articles = [[String : String]]() // empty Array of dictionaries
// is the same as for var i = 1; i <= 5; i++ {
for i in 1...5 {
let article = [String : String]()
article["title"] = "Article A\(i)" // using String interpolation
articles.append(dict)
}
// add articles to sampleData
sampleData["articles"] = articles
由于 Swift 的功能方法 map
您还可以将其重写为:
var sampleData = [[String : AnyObject]]() // empty Array of dictionaries
sampleData["description"] = "Section A"
let articles = (1...5).map{ Dictionary(dictionaryLiteral: ("title", "Article A\([=11=])")) }
// add articles to sampleData
sampleData["articles"] = articles
作为一般建议,如果你想使用这样的数据结构作为存储,你应该考虑制作新的结构或 类 像 Section
和 Article
来检查更静态的编译器一.