ARC equivalent of autorelease?

2019-04-04 02:59发布

问题:

If I have this code,

+ (MyCustomClass*) myCustomClass
{
    return [[[MyCustomClass alloc] init] autorelease];
}

This code guarantees the returning object is autoreleased. What's the equivalent of this in ARC?

回答1:

There is no equivalent in ARC, as you don't need to do it yourself. it will happen behind the scenes and you are not allowed to do it your self.

You simply use -

+ (MyCustomClass*) myCustomClass
{
    return [[MyCustomClass alloc] init];
}

I suggest you to watch the ARC introduction in the 2011 WWDC as it very simple when you get it.

Look here: https://developer.apple.com/videos/wwdc/2011/

And as the guy in the movie says -

You don't have to think about it any more (almost)



回答2:

When compiling with ARC, you simply write it as:

+ (MyCustomClass *)myCustomClass
{
    return [[MyCustomClass alloc] init];
}

and the compiler/runtime will handle the rest for you.