2016-04-07 20 views
2

Sınıfım için hızlı bir şekilde bir işlevi parametre olarak iletebileceğim bir şey arıyorum.Fonksiyonlar alanlar olarak saklanabilir mi? Bu geri aramalar için iyi bir yaklaşım mı?

Bu benim geçerli kodum.

Bunun işe yarayıp yaramadığından emin değilim. Sınıfımın işlevlerinin bir parçası olarak işlev alacağını tanımlamanın doğru yolu bu mu? Örneğin, cancelCode ve runCode'un çalıştırılmak üzere geçirilebilecek işlevleri olması gerekir.

Herhangi bir hata atmıyor gibi görünüyor.

Bunu rasgele kod alacak ve özel bir ilerleme penceresinde çalıştıracak bir ilerleme sınıfı oluşturmak için yapıyorum. Yaptığım şeyin alternatif metodu, bunun bir özelliği yapmak olabilir, muhtemelen bir protokole bağlı olması gereken bir sınıf gerektirir. Yine de bunun nasıl çalışacağından emin değilim.

+0

İşlevlerin Yöntemler olmadığını unutmayın. – user2864740

+0

İyi nokta, bunu unuttu. –

cevap

1

Elbette, yöntemlerin hiçbir parametre almadığı ve hiçbir şey döndürmeyeceği durumlarda, bunları yaptığınız şekilde bildirebilirsiniz.

Merak ettim, ama neden, neden özellikleri static?

+0

Benim durumumda sadece bir ilerleme penceresine sahip olacağım için durağanlar, bu yüzden gerçekten bir örnek vermediğim için bunun bunu düzenlemenin en iyi yolu olabileceğini düşündüm. Ayrıca iOS'ta bir seferde yalnızca bir ilerleme penceresi gösterebilirsiniz. –

+0

Ya bazen parametreler olacak? –

+1

@JosephAstrahan Muhtemelen, hiç kimse sınıf altlığı olarak tanımlanamazsa alt sınıfta kimsenin geçersiz kılmasını (statik olarak geçersiz kılınamaz) istersiniz. bu arada, statik var f: (Int) -> Int = {return $ 0} da geçerli, böylece 'geçerli bir' işlev türü 've' daha sonra yeniden tanımla ',' – user3441734