您的位置:首页 > 移动开发 > IOS开发

iOS变量定义在 .h 还是 .m 中

2015-06-05 15:00 302 查看

前言

以前我定义变量一直都是定义在.h文件中,后来看别人的代码,发现很多人都把一些变量定
义在.m文件中。后来我自己试了一把,发现变量既可以定义在.h文件中也可以定义在.m文
件中,虽然这是个很小的问题,或许有些人会说既然都可以,那不随你定义在哪里喔,但是
我一直觉得肯定会有区别的,后来我终于找到了一个能说服我的解释了。


一、变量定义在.h文件中

@interface BaseTableViewController : BaseNavViewController
{
UIView *backgroud;
UIActivityIndicatorView *activity;
UIImageView *imageNonet;
UILabel *labError;
UILabel *labRetry;
}


二、变量定义在.m文件中

@interface BaseTableViewController ()
{
UIView *backgroud;
UIActivityIndicatorView *activity;
UIImageView *imageNonet;
UILabel *labError;
UILabel *labRetry;
}


其实这两种定义方式从写法上来说是没有问题的,但是从代码规范来看却是有问题的。

.h文件中一般放的是一些对外公开的变量或者是方法,而.m文件中一般放的是自己私有的一些变量和方法。比如说,我们要写一个SDK给别人调用,我们把写好的代码打包成一个静态库,调用者只能够看到.h文件,那么我就把需要传入的参赛变量和调用的方法写在 .h 文件中。对于一些与调用者无关而我们自己要需要的变量或是方法我们就可以放在 .m文件中。其实通俗的说就是对外公开的变量或是方法就定义在 .h 文件中,对内私有的变量或是方法就定义在 .m 文件中。

补充

如果定义一个属性类,供其他类调用,则这些属性全部要定义在.h文件中。因为定义在.m文件中的属性,其他的类是访问不到的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  变量定义的位置