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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,471评论 11 349
  • JVM内存模型Java虚拟机(Java Virtual Machine=JVM)的内存空间分为五个部分,分别是: ...
    光剑书架上的书阅读 7,543评论 2 26
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 9,148评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,997评论 18 399
  • 《防狼手册》下半部,由于加入了真实案例,写得很长,还没写完。还剩最后一点。 白天找工作,只能有...
    飞桥野烟阅读 1,904评论 4 2