func repeatStr0(_ n: Int, _ string: String) -> String {
var accumulator = ""
for _ in 0 ..< n {
accumulator.append(string)
}
return accumulator
}
func repeatStr1(_ n: Int, _ string: String) -> String {
var accumulator = ""
(0 ..< n).forEach {_ in accumulator.append(string) }
return accumulator
}
func repeatStr2(_ n: Int, _ string: String) -> String {
return (0 ..< n).reduce(into: "") { s, _ in s.append(string) }
}
repeatElement("asd", count: 5).joined()
func getInfoUser (id_users: String, completion: @escaping (([String: String?])->())) {
var userInfo: [String:String?] = [:]
userInfo["firstName"]= responseApi.user[0].first_name
userInfo["lastName"] = responseApi.user[0].last_name
comepletion(userInfo)
getInfoUser(id_users: "", completion: {
~code here~
})
self
- указатель на себя. если Вы пишете в теле "-" вызова (-(void)doSmth
), то self - указатель на текущий экземпляр класса (с классовыми методами все чуть иначе, но сейчас не об этом). В любом случае, self
используется для вызовов метода (property, иногда даже ivar) в коде этого метода.-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
//не забыть проверить, кто такой sender
NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
//получить данные из datasource
}