2015-02-09 3 views
1

Я продолжаю пытаться создать блок, который вернет UIView после того, как он извлечет его из фона. Я получил выборку из фоновой части, но у меня возникли проблемы с настройкой блока. Этот код работает, но мне нужен блок, который можно вызвать из другого файла. Заранее спасибо.Как объявить блок, который возвращает UIView?

Я не могу вызвать launchAd для viewDidLoad, и ничего не работает.

typedef void (^launchAd)(UIView *); 
-(void)launchAd:(void (^)(UIView *ad))block 
{ 

} 
+1

Ваш код слишком абстрактны и не возвращать UIView. Пожалуйста, покажите свой код _real_ и объясните, с чем вы столкнулись. – matt

ответ

3

Возможно, вы можете попробовать что-то, как показано ниже:

//class file 1:  
+ (void) doYourStuff:(void (^)(UIView* returnedView))successBlock { 
    successBlock(returnedView); 
} 

//class file 2: 
[class1 doYourStuff:success:^(UIView* returnedView) { 
    //do whatever you want with the returned data 
}]; 

Если вы хотите добавить блок невозвращение сценариев отказов:

+ (void) doYourStuff:(void (^)(UIView* returnedView))successBlock 
      failure:(void (^)(NSError *error))failureBlock { 
      if (getView) 
      successBlock(returnedView); 
      else 
      failureBlock(error); 
} 
+0

спасибо, это потрясающе! Один вопрос, как мне сказать, как сделать метод YourStuff, чтобы этот метод был успешным. Так что скажем, я сделал UIView. Как передать этот UIView и объявить об успехе? – Team6Labs

+0

@ Team6Labs Я изменил ответ, включая случай сбоя. Блок успеха содержит случай успеха, а блок отказа содержит случай отказа –

+0

По соглашению inObjective-C только методы, которые возвращают значение по ссылке начинать с «get». Обычно имя метода будет выглядеть примерно так: 'memberSuccess: failure:'. – zaph

Смежные вопросы