2016-04-04 26 views
0

Manipüle dizeleri ViewController'ımda ayrı bir sınıftan kullanmaya çalışıyorum. İşleri kolaylaştırmak için, stringByReplacingOccurrencesOfString'u kullanarak değiştirdiğim Other.class'a sahibim. Daha sonra bu değeri ViewController numaralı telefonuma String olarak ayarlıyorum. Benim ViewController yılındaBaşka bir sınıftan dize değerleri alma

var name: String! 
name = "John" 

... 

func changeString { 
    name = name.stringByReplacingOccurrencesOfString("a", withString: "e") 
} 

self.mainViewController!.fakeName = name 

, o zaman şöyle bir tablo hücresine yönelik bir değer olarak bu dizeyi kullanın:

var fakeName: String? 
... 
if (indexPath.row == 0) { 
      cell.nameLabel.text = fakeName! 
     } 

Nedense, fakeName bir nil değerini dönen tutar ve neden hiçbir fikrim yok. Herhangi bir fikir?

Swift için yeni bir Java geliştiricisiyim, bu yüzden sözdizimine alışıyorum. Bu sorunun gerçekten açık bir cevabı varsa özür dilerim.

+0

decleare Değişkeninizi ayırmak zorunda Sizin soru Per gibi? Hangi kısım çalışmıyor? –

+0

gösterme denetleyicide – iOS

+0

fakeNamereturns görünüm denetleyicimde bir sıfır değeri kullanın. Üzgünüz, bunu açıklığa kavuşturmak için yayını düzenleyeceğim. – wasimsandhu

cevap

1

Bunun sizin için çalıştığını düşünüyorum. Örnek için sınıfın dış tarafındaki değişkenleri bildir. Diğer şeyler Bir .swift dosyası oluşturdunuz ve Global değişken olarak değişken bildirdiniz.

var fakeName : String = "" 
// First Class where you change the value of name 
class ViewController : UIViewController 
{ 
    func changeString { 
    name = name.stringByReplacingOccurrencesOfString("a", withString: "e") 
} 
} 

// Other Class where you use the value of name 
class mainViewController : UIViewController 
{ 
    ...... 
if (indexPath.row == 0) { 
      cell.nameLabel.text = fakeName 
     } 
} 

// Eğer sadece Sorunuz nedir sadece

var fakeName: String = "" 
+0

Eğer 'İsteğe bağlı' ise hemen tahsis edilmesine gerek yoktur, daha sonra ayarlanabilir. – ColGraff

+0

Bu, sorumu yanıtladı, ancak asıl sorun 'self.table.reloadData()' çağırmayı unutmamdı. Zahmet ettiğiniz için çok teşekkür ederim! :) – wasimsandhu

İlgili konular