SORU
24 AĞUSTOS 2011, ÇARŞAMBA


Bir geri arama yöntemi olarak kullanmak için bir blok alarak uygulamaya

Bir yöntem buna benzer yazmak istiyorum:

 (void)myMethodWithView:(UIView *)exampleView completion:(void (^)(BOOL finished))completion;

Temelde sözdizimi Apple'ın sınıf yöntemlerden biri alınan UIView için soyunmuş.

  (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;

Ve bu şekilde kullanılmasını bekliyoruz ki:

[myFoo myMethodWithView:self.view completion:^(BOOL finished){
                     NSLog(@"call back success");
                 }];

Benim sorum bunu nasıl uygulayabilirim? Eğer birisi doğru Dokümantasyon için bana gelin eğer ben harika olurdu, ve çok temel bir örnek daha (ya da bir şey bulamadım Yığın Taşması ... ... benzer bir cevap mutluluk duyacağız. Ben hala bunun doğru bir yaklaşım olduğunu, hatta olup olmadığını belirlemek için delegeler hakkında yeterince bilgimiz yok!

Bu uygulama dosyasında olmasını beklerdim ne kaba bir örnek verdim, ama bilgi bulamıyorum gibi sanırım iş.

  (void)myMethod:(UIView *)exampleView completion:(void (^)(BOOL finished))completion {
    // do stuff

    if (completion) {
        // what sort of syntax goes here? If I've constructed this correctly!
    }

}

CEVAP
24 AĞUSTOS 2011, ÇARŞAMBA


Normal bir işlev gibi bir blok diyebilirsiniz:

BOOL finished = ...;
if (completion) {
    completion(finished);
}

Bu tam bir engelleme fonksiyonu kullanılarak örnek uygulama şu şekilde görünecektir demek:

  (void)myMethod:(UIView *)exampleView completion:(void (^)(BOOL finished))completion {
    if (completion) {
        completion(finished);
    }
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ★TheCrono Official Channel★

    ★TheCrono

    3 Mayıs 2014
  • Glove and Boots

    Glove and Bo

    1 ŞUBAT 2007
  • Slave Boy Films - Fandom from a Galaxy Far Far Away

    Slave Boy Fi

    12 HAZİRAN 2009