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

前言

以前我定义变量一直都是定义在.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 文件中。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。