A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 微尘•逐梦 中级黑马   /  2014-4-29 15:56  /  1459 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 微尘•逐梦 于 2014-4-29 17:57 编辑

如果未在@property···@end之间进行方法声明,只在@implemenation···@end进行了方法实现,这个方法能否进行使用,有没有什么特殊场合使用这种写法?

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

7 个回复

倒序浏览
按道理是能够使用的。你可以测试下。但是这种方法只在这个.m文件中能用,因为别人包含这个类的.h文件,不会包含这个.m文件,所以别人不知道你有这个方法,所以在别的.m文件应该就不能用了
回复 使用道具 举报
不能把,你都没声明,编译器怎么知到这个方法
回复 使用道具 举报
魅影穿眸 发表于 2014-4-29 16:20
不能把,你都没声明,编译器怎么知到这个方法

在当前.m文件能使用,超出这个.m文件就无法使用了。
回复 使用道具 举报
脸皮猴 发表于 2014-4-29 16:21
在当前.m文件能使用,超出这个.m文件就无法使用了。

我看进阶篇中确实有这样定义方法的,只使用在.m文件中。
回复 使用道具 举报
(快速入门里面讲到了) ( 你写的 @property 是不是指的 @interface?)
未在.h文件中声明但是在.m文件中实现的方法相当于.m文件的私有方法, 只可以在当前.m文件中使用.
使用场合: 比如.h文件中声明了一个求乘方的方法, 在.m文件中实现这个求乘方的方法时, 调用了一个辅助的求积的方法, 这个辅助方法外界并不需要使用, 那这个方法就可以不在.h中声明, 只作为.m的私有方法.

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
liulinjie 发表于 2014-4-29 17:52
(快速入门里面讲到了) ( 你写的 @property 是不是指的 @interface?)
未在.h文件中声明但是在.m文件中实现的 ...

是@interface,打错了,谢谢。
回复 使用道具 举报
呃补充一下,
刚刚突然发现, 还有一种只在类的.m中定义不在.h中声明的情况, 是重写父类的函数, 比如 (void) description, 重写的函数就不需要在.h文件中声明, 可以被系统自动调用.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马