objective-c 类扩展问题

objective-c 类扩展问题

老师:

    您好!请教一个类扩展问题,如下:

@interface MyClass : NSObject

- (float)value;

@end

 

 

@interface MyClass () { //注意此处:扩展

    float value;

}

- (void)setValue:(float)newValue;

@end

 

@implementation MyClass

 

- (float)value {

    return value;

}

 

- (void)setValue:(float)newValue {

    value = newValue;

}

 

@end

以上的value和setValue在类的外部是否就无法访问?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

你可以在main.m中调用一下,这样就很简单明了啦。

提问者 qq_稀饭豆浆油条_0 2017-02-07 17:06:39

我就是在main.m中无法访问使用 类扩展增加的方法或属性,所以才提问,我以为我什么地方写错了。

回头想想,应该是这样的:只有在.h文件中暴露的方法和属性才能在外部被访问到,而在.m中的类扩展,按道理来说是不应该被外部访问的。

  • 一般你想在外部访问这个类的属性和方法,就像你说的在.h文件中去声明定义属性和方法。
    2017-02-07 17:15:56
Tender10 2017-02-07 17:01:59

您好,get方法在外部是无法访问的,set方法在外部是可以访问的。

  • St711 #1
    为什么说get方法在外部无法访问?不是可以通过get方法访问对象的内部属性吗?
    2017-04-06 15:56:51
  • Tender10 回复 St711 #2
    你自己都说可以访问内部属性了,这是属性的私有化。在外部是没办法访问的。
    2017-04-06 16:46:29
  • St711 回复 Tender10 #3
    为了访问对象背部的属性,所以我们用get方法是吧?
    2017-04-06 16:48:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师