注意:通过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