我繼承了在10.6上開發的應用程序,並且我想在10.7上遷移。我想遵守自動引用計數,我開始了。轉換助理髮送給我和錯誤消息:'[重寫器]刪除未使用的'autorelease'消息是不安全的;它的接收器可以被立即銷燬」,並指向下面的方法:10.7上的ARC遷移工具給出錯誤:刪除未使用的「autorelease」消息是不安全的
+ (MyClass *)deserializeNode:(xmlNodePtr)cur
{
MyClass *newObject = [[MyClass new] autorelease];
[newObject deserializeAttributesFromNode:cur];
[newObject deserializeElementsFromNode:cur];
return newObject;
}
這將是非常正常的樣式(除了醜‘老保留/釋放的環境新的’消息),但是,ARC環境不允許這個。它似乎對我來說不是很好的解決方案,但是我應該如何使用新指令創建輪詢?這是否正確?
+ (MyClass *)deserializeNode:(xmlNodePtr)cur
{
MyClass *newObject;
@autorelease
{
newObject = [MyClass new];
[newObject deserializeAttributesFromNode:cur];
[newObject deserializeElementsFromNode:cur];
}
return newObject;
}
在返回之前不會釋放'newObject'嗎?
您是否找到了解決方案? – Kamchatka