2014-12-31 23 views
6

Hızla, yinelenen bir dizin değeri tarafından yönetilen bir döngüde, "person_" ile geçerli döngü dizininin birleştirilmiş değişken adına sahip bir değişken oluşturmak istiyorum. Ben çevrimiçi arama böylece burada ilanıyla şansı olmadığınıDinamik adla hızlı bir değişken oluşturun

var person_0 = ... 
var person_1 = ... 
var person_2 = ... 
etc... 

:

Yani benim döngü gibi değişkenleri oluşturarak biter.

Teşekkürler! = "Kişi _ \ (indeks)"

+5

Bu kötü bir uygulamadır. Yapmaya çalıştığınız şeyi başarmak için muhtemelen daha iyi çözümler vardır. Daha fazla bağlam sağlarsanız yardımcı olabilirim. – David

cevap

1

let adı

sonra döngü önce ilan kesilebilir bir diziye adını ekleyin.

Böyle bir şey mi var?

0

Yapmaya çalıştığınız şey hızlı bir şekilde mümkün değildir. Değişken adı sadece insan için (özellikle derlenmiş bir dilde), yani derleme aşamasında sıyrıldıkları anlamına gelir.

AMA gerçekten bunu gerçekten yapmak istiyorsanız, kod oluşturma aracı gitmenin yoludur. Doğru bir kod oluşturma aracı bulun, yapı aşamasında çalıştırın.

3

Tek çözüm, tüm değişkenlerinizi bir dizide saklamaktır. Bu dizide sakladığınız değişkenlerin dizinleri, değişken adına dahil etmeye çalıştığınız dizin değerlerine karşılık gelir.

görünümünüzü denetleyici üst kısmında bir örnek değişkeni oluşturun:

for var i = 0; i < someVariable; i++ { 
    let person = // someValue of type WhateverTypePersonIs 
    people.append(person) 
} 

ise:

var people = [WhateverTypePersonIs]()

Sonra o örnek değişkeninde istiyorum ancak birçok kişi depolayacak bir döngü oluşturmak Sorunu çözmeye çalıştığınız şekilde "person_2" ne sahip olmanız gerekir, örneğin, people[2] kullanarak bu kişiye erişebilirsiniz.

0

Swift'de dinamik değişken adları oluşturmak mümkün değildir. Neyi başarmaya çalıştığınız, Array için tipik kullanım durumudur.

Bir Array oluşturun ve kişi verilerinizle doldurun. Daha sonra, bu kişilere şu adresten erişebilirsiniz:

var persons: [String] = [] 

// fill the array 
for i in 0..<10 { 
    persons.append("Person \(i)") 
} 

// access person with index 3 (indexes start with 0 so this is the 4th person) 
println(persons[3]) // prints "Person 3" 
İlgili konular