作者issuemylove (skill)
看板MacDev
標題[問題] view controller間傳遞block並執行
時間Tue Jan 7 15:23:17 2014
我有兩個 view controller
a,
b (
b 裡面有個變數 block型態變數: block)
a 會執行
ViewControllerB *
b = [[ViewControllerB alloc] ...略];
b.block = ^{
[
self doSomething]; //這裡的self =
a
};
[self presentViewController:
b ...略];
-------------------------------------------------------------
b 的 viewDidAppear: 裡面會執行
self.block(); //即執行a給的block,結果
此行出錯了...orz
請問要怎樣解決這樣的問題? QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.21.125.247
1F:→ issuemylove:ps. 沒有error message...直接出現(lldb) 盪住 01/07 15:25
2F:→ darktt:你的block的property參數是啥? 01/07 16:40
@property (nonatomic, assign) void (^block)();
有關係嗎 冏?
※ 編輯: issuemylove 來自: 211.21.125.247 (01/07 16:44)
3F:→ darktt:有關係block也是會被release的,你要將它改為copy就可以了 01/08 08:46
4F:→ darktt:另外是我的建議,viewController不要用block,只用delegate 01/08 08:49
5F:→ darktt:就好了 01/08 08:49
...阿 對後...orz,是說當初我設定屬性時, retain 不給我加
才使用assign @@|||, 這也好像是我第一次對有property變數的object使用 assign
渾然忘記 assign 的效果
謝謝你!
※ 編輯: issuemylove 來自: 211.21.125.247 (01/08 10:32)