看板 MacDev 關於我們 聯絡資訊
我有兩個 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
issuemylove:ps. 沒有error message...直接出現(lldb) 盪住 01/07 15:25
darktt:你的block的property參數是啥? 01/07 16:40
@property (nonatomic, assign) void (^block)(); 有關係嗎 冏? ※ 編輯: issuemylove 來自: 211.21.125.247 (01/07 16:44)
darktt:有關係block也是會被release的,你要將它改為copy就可以了 01/08 08:46
darktt:另外是我的建議,viewController不要用block,只用delegate 01/08 08:49
darktt:就好了 01/08 08:49
...阿 對後...orz,是說當初我設定屬性時, retain 不給我加 才使用assign @@|||, 這也好像是我第一次對有property變數的object使用 assign 渾然忘記 assign 的效果 謝謝你! ※ 編輯: issuemylove 來自: 211.21.125.247 (01/08 10:32)