"Enter"a basıp içeriğe geçin

Kategori: iOS

NSMutableDictionary’den eleman silmek

Objective-C’de NSMutableDictionary tipindeki bir değişkenden [dict removeObjectForKey:key] fonksiyonu ile eleman silinir. Eğer bu işlemi yaparken *** Terminating app due to uncaught exception ‘NSGenericException’, reason: ‘*** Collection <__NSDictionaryM: 0x92c50b0> was mutated while being enumerated.’ hatası alıyorsanız; bir iterasyon sırasında yani NSMutableDictionary tipindeki değişkenin elemanları üzerinde döngü ile dolaşırken bu işi yapmaya kalkıyorsunuz demektir.     for (NSString* key in dict) { if([key isEqualToString:@”silinecek_key”]) [dict removeObjectForKey:key];  //iterasyon içerisinde bu işlem yapılmaz! } Bu  hatayı engellemek için döngü içerisinde hangi öğelerin silineceğini bir dizide tutmalı ve döngü sonrasında bu elemanları değişkenden çıkarmalıyız. İkinci bir yol olarak da NSMutableDictionary tipindeki değişkenin üzerinde değil, [dict allKeys]…

CocoaPods ile QuickDialog Kurulumu

Bir önceki yazıda bahsettiğim kütüphanelerden QuickDialog‘u web sitesindeki yönergeleri defaatle tekrarladığım halde başarılı bir şekilde projeme dahil edemedim. Sürekli “#import <QuickDialog/QuickDialog.h> file not found!” deyip durdu. Forumlarda da çare bulamadım. Ofisteki bir arkadaşımın “CocoaPods‘la kurmayı deneyelim” demesiyle kolları sıvadık. Aslında bir önceki yazıda CocoaPods’dan da bahsetmiştim ama oraya yazdığım üzere CocoaPods’un sadece bu kütüphanelerin son sürümlerini takip edebilmek için bir araç olduğunu düşünmüştüm. Meğer bu paketleri projemize dahil edebilmek için kullanılıyormuş CocoaPods. Önce CocoaPods’u kuralım. Web sitesinde de yazdığı üzere CocoaPods “ruby gem” adı verilen bir platform üzerinden kullanılabiliyor. Ruby gem’i kurmak için de makinemde zaten kurulu olan “macports” platformunu…

Mobilist’ten iOS Uygulama Geliştirme İpuçları

Geçen ay (21 Nisan) Bahçeşehir Üniversitesi’nde yapılan Mobilist – Mobil Uygulama Geliştirme Konferansı’nda aldığım bazı notları kaynakları ile birlikte yayınlamak istiyorum. Konferans’da iOS konusunda Sarp Erdağ, Taylan Pince ve Emrah Ayanoğlu konuşma yaptılar. Bilhassa Sarp Erdağ (Hızlı iOS ve Mac uygulama geliştirme) ve Taylan Pince’nin (iOS ve XCode Üzerine Pratik Öneriler) sunumları çok ilgimi çekti. Sarp Erdağ’ın sunumundan aldığım notlar: Uygulama inceleme siteleri: App Annie, 148Apps, Distimo Uygulamanızı minimum ihtiyaçları karışlayacak şekilde hızlıca çıkarın, sonraki güncellemelerle diğer özellikleri ekleyin. Geliştirme safhasını kısa tutun Arayüz sade ve kullanışlı olsun, abartılardan, karmaşık detaylardan kaçının Kimler nasıl mobil arayüzler hazırlamış diye inceleyin: pttrns.com…

Objective-C NSNotificationCenter ile veri aktarma

Objective-c’de iki ekran (yani iki viewController) arasında veri alışverişi yapmak için çeşitli yöntemler var. A ekranı B ekranını çağırıyorsa çağırmadan evvel B’deki bir değişkene değer atayabiliyoruz. Bu konuya dair yazımızı inceleyebilirsiniz. Bu yazımızda ise modal olarak çağırılan B ekranında işimiz bittiğinde A ekranına veri aktarmanın bir yöntemi olan NSNotificationCenter’e örnek vereceğiz. NSNotificationCenter isminden de anlaşıldığı üzere program esnasında herhangi bir ekrandayken “bir şey oldu!” demenin yoludur. İşte daha yolun başındayken programımızda diyoruz ki; “falan şey” olursa şu fonksiyonu çağır. Her ekranda “falan şey” olduğunda farklı fonksiyonların devreye girmesini tanımlayabiliyoruz. Örneğimizde AviewController içerisinde BviewController’i çağırdığımızı, B’de bazı işlemler yaptıktan sonra kapatıp…

Objective-C İki ViewController arasında veri aktarma

Objective-C’de iki ekran yani iki viewController arasında veri aktarmanın çeşitli yolları var. Eğer storyboard üzerinde A ekranından (AviewController) B ekranına (BviewController) segue (geçiş) tanımlanmışsa bu geçiş yapılmadan hemen önce – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender fonksiyonunu kullanarak B’nin bir değişkenine değer aktarabiliriz. Bunun için öncelikle BviewController.h dosyası AviewController.h dosyasında import edilir. Böylece B nesnesi A’da kullanılabilir. #import BviewController.h Sonra AviewController.m dosyası içerisinde  – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender fonksiyonu tanımlanır. – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if ([[segue identifier] isEqualToString:@”segDeneme”]) //birden fazla segue varsa storyboard üzerinde seguenize bir isim vermelisiniz. { BViewController *bvc = [segue destinationViewController]; bvc.stringDegisken=@”A’dan B’ye selam olsun”; //tabi BviewController’da string tipinde stringDegisken isimli bir…

Yeni iPad ve “Arayüz Tasarımı” konusunda bir kaç kelam

Biraz önce www.apple.com adresinden 7 Mart Apple etkinliğine ait 85 dakikalık videoyu izlemeyi bitirdim. Steve Jobs’un ardından yapılan ilk etkinlikti bu. Aylar öncesinden büyük bir hayran kitlesi -ben dahil- bu gün tanıtılacak olan yeni iPad’i bekliyorduk. Bugün sadece yeni iPad sunulmadı, iOS 5.1 yayınlandı ve Apple TV’nin yeni versiyonu açıklandı. Ama asıl olay yeni iPad’di tabi ki. iPad’in beklediğim en önemli özelliği tam olarak “amazing” bir olaydı bence: RetinaDisplay Ekran. 2048 x 1536 çözünürlük. Dünyanın parasını verip aldığımız kocaman LCD televizyonların sunduğu çözünürlükten bile daha fazla! (Apple ürünlerini almaktan henüz LCD tv almaya fırsatım olmadı, hala tüplü televizyona bakıyorum, bu…

Ubit’ten Alfabem

Çalıştığım firmada eğitime A-Z’ye el attığımızı rahat rahat söyleyebilirim 🙂 Okul öncesi veya anaokulu seviyesindeki yavrularımız için iPad oyunu Alfabem AppStore raflarında yerini aldı. Daha detaylı yazıyı ekibimizin blogu‘nda bulabilir, uygulamayı iTunes‘dan indirebilirsiniz.

iOS5 yep yeni özellikleriyle geliyor

Apple iOS’un 5. sürümünü tanıttı. 200’den fazla yeni özellikle mobil işletim sistemleri çıtasını daha yükseğe çıkaran Apple liderliği elinden bırakmaya niyeti olmadığını bir kere daha kanıtladı. iOs 5’in “heyecan verici” yeni özelliklerine kısaca değinelim. Notification Center: Email, SMS ve Takvim mesajları artık tek bir çatı altında toplanmış. Ayrıca herhangi bir uygulamanın tam ortasındayken -mesela bir oyun oynarken- bir mesaj geldiğinde  kocaman bir uyarı uygulamanızı bölmüyor, onun yerine ekranın en üstünde kibar bir uyarı beliriyor ve gözden kayboluyor. Notification Center’e ulaşmak çok kolay, ekranın en üstünden aşağı doğru parmağı sürüklemek kafi. Evet, bu Android işletim sistemindeki yapıya benziyor. Aklın yolu bir…