Press ESC to close

Swift Timer Kullanımı

Bir çok programlama dilinde olduğu gibi Swift’de de zaman konusu çok önemlidir. Özellikle şimdiki zamanı genellikle büyün uygulamalarda alırız. Tabi bu programdan programa değişiklikler gösterebilir. Swift’de zaman kullanabilmek için bir değişken tanımlayıp bu değişkeni Timer sınıfından almamız gerekiyor. Kısaca Timer sınıfından bahsetmek gerekirse içerisinde işimize yarayacak büyün fonksiyonların bulunduğu sınıftır. Bu sayede çok fazla kod yazmadan istediğimize ulaşabiliyoruz.

Bir senaryo üzerinden bunların anlatımlarını yapalım. İlk olarak şimdi ki zamanı ve tarihi alalım. Bunun için saatFormatter ve DateFormatter adında iki değişken tanımlıyoruz. Sonrasında ise bu değişkenlere birer stil vermemiz gerekiyor. Eğer saat ise timeStyle üzerinden tarih ise dateStyle üzerinden stillerini veriyoruz. Bu stilleri vermemizde ki amaç saat veya tarih hakkında ne kadar bilgi vermemizi sağladığıyla ilgilidir. Örnek vermek gerekirse eğer stili medium seçersem saati, dakikayı ve saniyeyi gösterirken stil kısmında full seçersem hangi saat dilimini kullandığımı kadar hepsini ekrana veriyor. Bu sayede zamanı ve saniyeyi alabiliyoruz.

        let saatFormatter = DateFormatter()
        saatFormatter.timeStyle=DateFormatter.Style.medium
        
        let tarihFormatter = DateFormatter()
        tarihFormatter.dateStyle=DateFormatter.Style.medium

Ekranda eğer ki sürekli güncel saati ve tarihi göstermek istiyorsanız ise timer kullanmak zorundasınız. Bunun için ise yukarıda bir sayac adında değişken oluşturmuştur. Bunu kullanarak süreki zamanı yeniden alacağız. Aşağıda ki fonksiyon ile bunu gerçekleştirebiliyoruz. Fonkisyonu açıklamak gerekirse timeInerval ise kaç saniyede bir çalışacağını söylüyorsunuz. Hedef olarak nereye vereceğinizi sorduğunda kendisini hedef alacağını belirtiyorsunuz. Selector olarak da hangi fonksiyonun çalışacağını belirtiyorsunuz. Bu fonksiyonun içine de yukarıda ki saat ve tarih almayı ekleyip bunları bir label’a atarsınız istediğiniz süre zarfında yenileyerek labellarda gösterecektir.

sayac = Timer.scheduledTimer(timeInterval: 1, target: self, selector: (#selector(self.guncelle)), userInfo: nil, repeats: true)

Eğer aklınıza takılan sorular olursa bana mail veya yorum atarak ulaşabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir