SORU
10 NİSAN 2009, Cuma


Amaç seçiciler C

Birincisi, ben bir seçici ne olduğunu gerçekten anlamak emin değilim. Benim anlayış, bu ada sahip bir yöntem, ve atayabilirsiniz bunun için bir sınıf türü 'SEL' ve daha sonra çalışma yöntemleri gibi respondToSelector, eğer alıcı uygulayan yöntemi. Birisi daha iyi bir açıklama olabilir mi?

İkinci olarak, bu noktada, aşağıdaki kodu var:

NSString *thing = @"Hello, this is Craig";

SEL sel = @selector(lowercaseString:);
NSString *lower = (([thing respondsToSelector:sel]) ? @"YES" : @"NO");
NSLog (@"Responds to lowercaseString: %@", lower);
if ([thing respondsToSelector:sel]) //(lower == @"YES")
    NSLog(@"lowercaseString is: %@", [thing lowercaseString]);

thing açıkça NSString bir tür, ve lowercaseString yanıt olsa bile, ancak, yapamam '' dönmek için Koşullu""... . EVET respondsToSelector

CEVAP
10 NİSAN 2009, Cuma


Yöntem adları konusunda çok dikkatli olmak zorunda. Bu durumda, yöntem ismi sadece "lowercaseString", "lowercaseString:" (kolon devamsızlık, not). NSString nesneler lowercaseString Mesaja cevap ama değil lowercaseString: çünkü mesaj NO geri geliyor, sen de bu yüzden.

Nasıl bir kolon eklemek için ne zaman biliyor musunuz? Eğer bir argüman alırsa olur Eğer onu ararken bir kolon eklemek isterseniz mesaj adı için bir kolon ekleyin. Eğer sıfır değişkenleri lowercaseString ile olduğu gibi) alırsa, o zaman iki nokta vardır. Eğer birden fazla argüman alır, ekstra argüman onların iki nokta üst üste ile birlikte adları, compare:options:range:locale: olarak eklemek zorunda.

Ayrıca documentation bak ve sonunda iki nokta varlığı ya da yokluğu dikkat edebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cyriak

    cyriak

    29 Mart 2006
  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009
  • sk8ingis4me

    sk8ingis4me

    16 Mart 2006