Mobil Programlama

iOS

iOS için Sık Sorulan Sorular

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

 

Cihazımın UDID değerini nasıl öğrenirim?

Bağlı olan cihazların UDID değerlerine Xcode içerisinde yer alan Organizer programı ile ulaşabilirsiniz. Window menüsü altında yer alan Organizer’da ilk seçenek olan Devices altından bağlı olan bütün cihazları görüntüleyebilirsiniz. UDID değeri ise sol menüden bir cihaza tıkladığınızda Identifier adı altında görüntülenecektir.

 

Eski arşiv dosyalarına nasıl ulaşırım?

Bir iOS uygulamasını AppStore ya da Adhoc dağıtım amacıyla derledikten sonra oluşturulan arşiv dosyalarının listesini, Organizer uygulaması altında Archives seçeneği içerisinde bulabilirsiniz. Herhangi bir sebepten dolayı eski sürümlerden birini tekrar yüklemeniz gerekirse dosyayı seçip Distribute düğmesini tıklamanız yeterli olacaktır.

 

Projeyi nasıl temizlerim?

Çalıştığınız bir projede yer alan eski derlenmiş dosyaları temizlemeniz gerekirse bunu Xcode altında Product menüsü içerisinden gerçekleştirebilirsiniz. Bu menü altında yer alan seçenekler:

  • Run - Projeyi cihazda ya da simulatörde çalıştırır.
  • Test - Uygulamayı test amaçlı çalıştırır.
  • Profile - Uygulamanın çalışması sırasında oluşan bellek sızıntıları ve performans sorunlarını gözlemleyebileceğiniz Profiler aracını çalıştırır.
  • Analyze - Projedeki olası hataları ve performans iyileştirmelerini size bildirir.
  • Archive - Projeyi dağıtım amaçlı arşivler.
  • Build - Projeyi derler.
  • Clean - Projeyi temizler.

 

iOS Simulatör'de sahte konum nasıl gönderirim?

Konum tabanlı uygulamanızı simülatörde denerken başka konumları denemek istiyorsanız sahte konum göndermeyi deneyebilirsiniz. Bunun için iOS Simulator seçili iken yukarıda yer alan menüden Debug seçeneği altında Location’a gelmeniz ve Custom Location seçeneğini seçmeniz gerekir.

Buradan açılan pencerede enlem ve boylam değerlerini girdiğinizde simülatör konum servisinin çıktısı olarak belirttiğiniz koordinatı kullanacak ve uygulamanız sanki o konumda çalışır gibi davranacaktır.

 

Bir UIView içerisindeki alt UIView’leri nasıl listelerim?

Herhangi bir UIView içerisinde yer alan diğer görsel öğeler subviews adında bir dizi altında tutulur. Bir UIViewController içerisinde yer alan bütün görselleri listelemek için aşağıdaki kodu kullanabilirsiniz:

 

- (void)viewDidLoad

{

    [super viewDidLoad];

    for(UIView *subview in self.view.subviews) {

        // subview değişkeni üzerinde işlemler...

      }

}

 

 

NSUserDefaults ile bir değişken nasıl saklanır?

NSUserDefaults NSDictionary mantığında anahtar - değer ikilisi kullanarak herhangi bir değişkeni bir anahtar karşılığında saklamanızı sağlar. Bu değer uygulamaya ait bölüme yazılarak sadece uygulama içerisinden erişime açıktır. Uygulamalar diğer uygulamalara ait NSUserDefaults değerlerini okuyamazlar.

NSUserDefaults içerisinde NSArray, NSDictionary, NSNumber, NSData gibi sınıflar kolaylıkla saklanabilir. Bunun için yapılması gereken kodun herhangi bir yerinde standardUserDefaults ile değerlerin saklandığı yere erişim sağlanmalı ve setValue:forKey: metodu ile anahtar - değer ikilisi belirtilmelidir. Tanımlar bittikten sonra synchronize metodu değerlerin yazılmasını sağlar.

 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

       [defaults setValue:value forKey:key];

       [defaults synchronize];

 

 

NSUserDefaults ile bir değişken nasıl çağırılır?

NSUserDefaults içerisinde saklanan bir değere ulaşmak için standardUserDefaults bölgesine erişim sağlanır ve objectForKey: metodu ile verilen anahtara karşılık düşen değer çağırılır.

 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    id value = [defaults objectForKey:key];

 

 

Interface Builder ile bir görsele nasıl etiket verilir?

Interface Builder ile bir arayüz hazırlarken kod içerisinden viewWithTag: metodu ile erişmek için görsellere etiket vermek isteyebilirsiniz. Bunun için yapmanız gereken, Interface Builder üzerinde bir görsel öğe seçili iken sağ tarafta yer alan dördüncü sekmeye gelmek ve View bölümü içerisindeki Tag kutucuğuna bir Integer değeri girmektir.

 

Kod içerisinden bir görselin etiketine nasıl ulaşılır?

Görsellerin etiket değerleri Integer tipindedir ve tag adında bir değişkende saklanır. UIView sınıfından türetilen bütün görsellerde tag özelliği bulunur. Aşağıdaki kod etiket değeri 101 olan görseli bulmak amacıyla yazılmıştır:

 

- (void)viewDidLoad

{

    [super viewDidLoad];

    for(UIView *subview in self.view.subviews) {

        if (subview.tag == 101) {

            // etiketi 101 olan öğeler

        }

    }

}

 

 

Etiket değeri bilinen bir görsel kod içerisinde nasıl çağırılır?

Eğer bir öğenin etiket değerini biliyorsanız ve o öğeye direkt ulaşmak istiyorsanız viewWithTag: metodunu kullanabilirsiniz. Bu metodda dikkat etmeniz gereken eğer birden fazla öğe aynı etiketi kullanıyorsa sadece bir tanesi getirilecektir. Eğer o etikete sahip bir öğe yoksa bu metod nil döner.

 

- (void)viewDidLoad

{

    [super viewDidLoad];

    UIView *subview = [self.view viewWithTag:101];

}

 

 

Info.plist dosyasındaki bir değeri kod içerisinden nasıl çağırırım?

Uygulamanızla ilgili özelliklerinin tutulduğu Info.plist dosyası içerisindeki bir değere ulaşmak için NSBundle sınıfından yararlanabilirsiniz. Bu sınıf altındaki infoDictionary size Info.plist altında kayıt edilen bütün değerleri verecektir. Dilerseniz siz de bu dosya içerisine bir kayıt yazarak bunu kod içerisinde aşağıdaki şekilde çağırabilirsiniz;

 

NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];

    id value =  [infoDict objectForKey:@"benimDegerim"];

 

 

ARC kullanılan bir projede ARC kullanmayan kodları nasıl çalıştırırım?

Eğer projenizde eski bir kütüphane kullanmanız gerekirse ya da ARC özelliği olmayan bir projenizden kod almanız gerekirse xCode’un sadece o dosyaları ARC kullanmadan derlemesini söyleyebilirsiniz. Bu sayede release içeren kodlarınızı ARC projenizde rahatlıkla kullanabilirsiniz.

Bunun için öncelikle eski kodları projenize dahil edin ve proje özelliklerinde hedef (Target) altında Build Phases seçeneğine gelin.

Build Phases altında Compile Sources listesinde proje ile ilgili dosyaları göreceksiniz. Burada yapmanız gereken ARC kullanmayan dosyaları bularak bunların yanına -fno-objc-arc yazarak bu dosyaların ARC kullanılmadan derlenmesini sağlamak olacaktır.

 

ARC kullanmayan bir projede ARC kullanan kodları nasıl çalıştırırım?

Eğer projenizde belli bir sebepten dolayı ARC kullanmıyorsanız ama sadece ARC destekleyen bir kodu eklemeniz gerekiyorsa (örn. AFNetwork) bu dosyaların ARC kullanılarak derlenmesini sağlayabilirsiniz. Bunun için yapmanız gereken, ilgili dosyaları projenize dâhil etmek ve proje özelliklerinde Target altında Build Phases seçeneğini seçmektir. Burada Compile Sources altında bütün kod dosyalarının bir listesini göreceksiniz. ARC derlenmesini istediğiniz dosyaların yanına -fobjc-arc yazdığınızda ilgili dosyalar ARC kullanılarak derlenir ve projenizde sorunsuzca çalışır.