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

  • Curso Online Gratuito

    Curso Online

    4 Aralık 2011
  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • ModNation Racers H.Q.

    ModNation Ra

    31 Ocak 2010