2016-04-02 28 views
-2

Dizinin Swift ile nasıl çalıştığını anlamaya çalışıyorum. Değişken bir dizi oluşturmak için let kullanın ve bir değiştirilebilen dizi oluşturmak için var kullanın. Yine de Swift'in dizisi, Objective'ın NSArray ve NSMutableArray ile tamamen aynı değil. Anladım.Swift: UITableView ile Array Boyutu

Aşağıdaki örnekte, tek bir öğeyle birlikte değiştirilebilir bir dizi oluşturuyorum. Aslında hiçbir element ile başlamak istiyorum. Ama eğer yaparsam, ona yeni bir dize ekleyemem. Bir elemanla başlarsam, orijinal eleman kaldırıldıktan sonra ona yeni bir dize ekleyemeyeceğim. Peki ben ne yapıyorum yanlış?

teşekkür ederiz

DÜZENLEME beklendiği gibi tüm ihtiyaçları çalışması gerekir

class ViewController: UIViewController { 
    let textCellIdentifier = "TextCell" 
    var myArray:[String] = ["GGG"] // or var myArray:[String] = [] 

    @IBAction func add1Tapped(sender:AnyObject) { 
     let index = tableView1.indexPathForSelectedRow; 
     let selectedRow = index()?.row 
     if selectedRow < 0 { 
      return 
     } else { 
      let txt = nameField1.text 
      myArray.append(txt) 
      tableView1.reloadData() 
     } 
    } 

    func tableView(tableView: UITableView,numberOfRowsInSection section:Int) -> Int { 
     return myArray.count 
    } 

    func tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath) -> UITableViewCell { 
     let cell:UITableViewCell=UITableViewCell(style: UITableViewCellStyle.Subtitle,reuseIdentifier:textCellIdentifier) 
     let row = indexPath.row 
     cell.textLabel!.text = myArray[row] 
     return cell 
    } 
} 
+5

"* Ben hiçbir öğe ile başlamak istiyorum. Ama eğer yaparsam, ona yeni bir dize ekleyemem. * ". Neden? – Eendje

+0

" Dizi "na istediğiniz zaman aşağıdaki gibi bir öğe ekleyebilirsiniz:' myArray.append ("dizginiz") ' – Mathews

+0

Ayrıca, UITableview? – HardikDG

cevap

1

:

// create an empty array of strings 
var myArray: [String] = [] 

// add two elements 
myArray.append("the first element") 
myArray.append("the second element") 

// remove both elements 
myArray.removeAll() 

// add another element 
myArray.append("the third but now first element") 

myArray.count 

screenshot from playground

Edit

denemek ve bu gibi eklenti yöntemini değiştirmek:

@IBAction func add1Tapped(sender:AnyObject) { 
    if let _ = tableView1.indexPathForSelectedRow, txt = nameField1.text { 
     print("will append \(txt) to myArray") 
     myArray.append(txt) 
     tableView1.reloadData() 
    } 
} 
+0

Teşekkürler ama hayır zaten dedim ki "eğer yaparsam, ona yeni bir dize ekleyemem." –

+0

Çalışmıyorsan kodunu gösterebilir misin? –

+0

Bu seninkiyle neredeyse aynı " myArray.append ("first element") "IBAction ile. –