Я довольно новый для Swift.Доступ к массиву внешних функций в Swift
(a) Я смог использовать представление таблицы для загрузки чисел из массива в таблицу.
(b) Я смог прочитать текстовый файл из Интернета и загрузить его в массив.
Однако, я хочу, чтобы массив в (b), созданный из текстового веб-файла, просматривался в (a), который представляет собой представление таблицы.
В моем коде отсутствует связь между разделами (a) и (b).
Не могли бы вы помочь?
//MAIN CLASS
import UIKit
//CHUNK 0
class ViewController: UITableViewController {
var candies = [Candy]()
//CHUNK 1
override func viewDidLoad() {
super.viewDidLoad()
// CHUNK 1.2
let request = NSMutableURLRequest(URL: NSURL(string: "http://www.saifahmad.com/A.txt")!)
httpGet(request){
(data, error) -> Void in
if error != nil {
print(error)
} else {
//print(data)//PRINTING ALL DATA TO CONSOLE
let delimiter = "\t" // Read a tab-delimited text file
// self.items = []
let lines:[String] = data.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet()) as [String]
var ar = [Double]()
for line in lines {
var values:[String] = []
if line != "" {
values = line.componentsSeparatedByString(delimiter)
// Put the values into the tuple and add it to the items array
let str = (values[1])//CHOOSE THE COLUMN TO PRINT (0, 1, 2)
// Convert string to double
let db = NSNumberFormatter().numberFromString(str)?.doubleValue
ar.append(db!)
}
}
dump(ar) // THIS ARRAY 'AR' PRINTS OK HERE BUT CANNOT BE ACCESSED IN CHUNK 1.3
}
}
// CHUNK 1.2
//CHUNK 1.3
// CANNOT ACCESS ARRAY 'AR' OF CHUNK 1.2 HERE
let ar2: [Double] = [0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.024, 0.028, 0.032, 0.036, 0.04]
for nn in ar2 {
self.candies.append(Candy(name: String(format:"%.4f", nn)))
}
//CHUNK 1.3
}
//CHUNK 1
//CHUNK 2
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//CHUNK 2
//CHUNK 3
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.candies.count
}
//CHUNK 3
//CHUNK 4
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
var candy : Candy
candy = candies[indexPath.row]
cell.textLabel?.text = candy.name
return cell
}
//CHUNK 4
//CHUNK 5
func httpGet(request: NSURLRequest!, callback: (String, String?) -> Void) {
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request){
(data, response, error) -> Void in
if error != nil {
callback("", error!.localizedDescription)
} else {
let result = NSString(data: data!, encoding:
NSASCIIStringEncoding)!
callback(result as String, nil)
}
}
task.resume()
}
//CHUNK 5
}
//CHUNK 0
//CANDY CLASS
import Foundation
struct Candy {
let name : String
}
Большое спасибо Оливеру! – Saif
Нет проблем :) если он работает, отметьте его как правильный ответ для следующего человека. –