12
[self.foo setBlock:^{ 
    [self doSomething]; // causes warning 
}]; 

爲什麼消息發送會在ARC中引起保留週期警告,但屬性集不會?

[self.foo setBlock:^{ 
    self.bar = baz;  // does not cause warning 
}]; 

的警告是「在此塊強烈捕獲self很可能會導致保留週期。」

這兩個都不會導致強烈的參考?

+0

如果將第二個示例更改爲'[self setBar:baz];',你會得到警告嗎? –

+0

是的,如果我通過該語法設置屬性,那麼我就可以。 – Aaron

+16

編譯器錯誤。可能在更高版本中修復。 – bbum

回答

1

這是一個編譯器錯誤,您應該向Apple提交錯誤報告。

兩者都是一樣的,a.b = c僅僅是寫作[a setB: c]的一種不同方式。如果編譯器處理一個不同於另一個,這是一個錯誤。

+0

爲什麼這會被低估? –

相關問題