2012-03-05 28 views
7

Olası Çoğalt:
Objective-C Default Argument Valueios'taki bir yönteme varsayılan argüman değeri nasıl tanımlanır?

Ben normalde C yapacağını gibi ++ ios bir işleve bir varsayılan argüman tanımlamak için bir yol bulamadık. IOS'ta mümkün mü? Değilse, tavsiye edilen bir iş var mı?

+0

Eğer C karıştırabilirsiniz ++ Obj C kodu – Felix

+0

i Obj-C yöntemlerini değil fonksiyonlar demek sanırım istiyoruz – Felix

+0

evet - ben u katılıyorum Obj C yöntemi üzgün – tiguero

cevap

28

Bu, Objective-C'de mümkün değildir. Eğer tamamen bir tartışmayı ihmal yeteneği, Objective-C bitti tipik bir şekilde arıyorsanız

- (void)someMethodThatTakesAString:(NSString *)string 
{ 
    if (string == nil) string = @"Default Value"; 

    // Use string 
} 

ile birden çok yöntem etmektir: Seçeneklerden biri aynı işlevselliği elde etmek için böyle bir şey yapmaktır giderek daha spesifik argüman setleri: Sonra

- (void)doSomethingWithOptionA:(BOOL)optionA andOptionB:(int)optionB 
{ 
    // Do something using options to control exactly what's done 
} 

- (void)doSomethingWithOptionA:(BOOL)optionA 
{ 
    [self doSomethingWithOptionA:optionA andOptionB:42]; // Where 42 is the default for optionB 
} 

- (void)doSomething; 
{ 
    [self doSomethingWithOptionA:NO]; // NO is the default for optionA 
} 

yalnızca varsayılan argümanlarla DoSomething istiyorsanız, sadece -doSomething çağırabilir. OptionA'yı ayarlamak istiyorsanız ve optionB'yi önemsemiyorsanız, -doSomethingWithOptionA: numaralı telefonu arayabilirsiniz.

Son olarak, iOS için yazmak için C++ kullanabileceğinizi ve Objective-C ve C++ öğelerini de karıştırabileceğinizi unutmayın. Objective-C++ kullanarak. Tüm söylediğiniz, kullandığınız ortamda işleri en iyi nasıl yapacağınız konusunda her zaman dikkatli düşünün. C++ deyimlerini ve desenlerini Objektif-C ve Kakao'ya zorlamaya çalışmayın. Farklılar ve bu şekilde olmalılar. Object-C koduna geçiş yaparken C++ sözleşmelerinden vazgeçmemiş bir C++ programcısı bulmak genellikle çok kolaydır ve bu genellikle iyi bir şey değildir.

1

burada cevapları bir göz atın: Objective-C Default Argument Value

Yapman gereken tüm argümanları alır ve sonra dönüp sonra, daha az bağımsız değişken alır kolaylık yöntemleri yazmak ve varsayılan uzun yöntemini çağırın bir yöntem tanımlamaktır değerler

İlgili konular