05-05、对象作为返回值类型

注意:通过new创建出来的的局部对象变量存储在堆内存中,堆中的数据不会自动释放。而存储在栈内存中的局部变量会自动释放掉(比如C语言中的基本数据类型的变量)

#pragma mark - 商店
@interface Shop : NSObject

// 买枪
+ (Gun *)buyGun:(int)money;

// 买弹夹
+ (Clip *)buyClip:(int)money;
@end

@implementation Shop


+ (Gun *)buyGun:(int)money
{
// 1.创建一把枪
Gun *gun = [Gun new]; // 通过new创建出来的对象存储在堆中, 堆中的数据不会自动释放
// 2.返回一把枪
return gun;
}
+ (Clip *)buyClip:(int)money
{
Clip *clip = [Clip new];
[clip addBullet];
return clip;
}

@end

你可能感兴趣的:(05-05、对象作为返回值类型)