Obj-C ARC: как удалить объект из массива / набора, а затем вернуть его как объект с автоматическим выпуском? - PullRequest
1 голос
/ 12 марта 2012

Как мне переписать этот метод для ARC?

- (KTThumbView *)dequeueReusableThumbView
{
    KTThumbView *thumbView = [reusableThumbViews_ anyObject];
    if (thumbView != nil) {
        // The only object retaining the view is the
        // reusableThumbViews set, so we retain/autorelease
        // it before returning it so that it's not immediately
        // deallocated when removed form the set.
        [[thumbView retain] autorelease];
        [reusableThumbViews_ removeObject:thumbView];
    }
    return thumbView;
}

Автоматический переносчик ARC выдает мне эту ошибку:

[rewriter] it is not safe to remove an unused 'autorelease' message; its receiver may be destroyed immediately

1 Ответ

1 голос
/ 12 марта 2012

Просто удалите строку [[thumbView retain] autorelease];.В первой строке будет сильная ссылка, гарантирующая ее при необходимости.

...