我理解自动引用计数的方式是这样的:
如果一个对象要被各种类使用,它应该是“strong”类型,这样它就可以保留,而其他人可能正在使用它。
如果一个对象只是一个类的内部结构,它可以是“弱”类型,因为一旦当前类实现完成处理它,它就会消失。
还有比这更多的吗?
这是我想象的一个例子:
#import "World.h"
@interface Foo : NSObject
@property (nonatomic, strong) NSArray *barArray;
@property (nonatomic, weak) NSString *bazString;
@end
@implementation Foo
-(void)sendTheArrayIntoTheWorld {
self.barArray = [NSArray arrayWithObject:@"lonely item"];
[World takeTheArray:self.barArray]; // array is strong so it can exist indefinitely
}
-(void)useThatString {
self.bazString = "weak old string"; // string is weak because it should be discarded when it's no longer needed here...
}
@end