• iOS编码的一些规范


     

    1、实例变量instance variable,最好带上前缀下划线,例如

    @interface  Person:NSObject

    {

        NSString *_name;

        int *_age;

    }

    @end

    有时候在.m文件中也会用到实例变量instance variable,这时候也带上前缀下划线

    @interface  Person()

    {

        NSNumber *_salary;

    }

    @end

    @implementation Person

    @end

    带上前缀下划线的好处就是让人明白,这就是在本类中使用,不会对外开放,算是一种比较好的变成习惯吧。

    2、使用#pragma mark -来说明“方法的来源”

    在.m文件中,我们可以看到很多大段大段的方法,这对阅读代码来说很不方便,因为一眼看过去不可能知道这个方法是私有方法,还是共有方法,还是代理方法,所以为了规范,可以这样来表明.m文件中方法的来源和用途,

    (1)说明这是来自代理的方法

    #pragma mark - xxxxDelegate,例如,

    #pragma mark - UITableViewDelegate

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    {

        return xxx;

    }

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    {

        return yyy;

    }

    - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    {

        return zzz;

    }

    #pragma mark - UITextFieldDelegate

    -(void)textFieldDidBeginEditing:(UITextField *)textField

    {

    }

    #pragma mark - UIAlertDelegate

    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

    {

    }

    这些系统提供的代理方法大家都懂,但是如果对于自定义或者第三库开源库中的代理方法,其他人不一定就看明白,所以使用这个#pragma mark - xxxDelegate来告诉其他人,这是来自某个代理的方法。

    (2)说明这是私有方法

    #pragma mark - Private methods

    我们经常在ViewController.m文件中写了很多的私有方法,使用[self xxxMethod];来调用,我们自己明白,为了方便其他人也一下明白,可以照样告诉别人,

    #pragma mark - Private methods

    - (void)initViews

    {

        [self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"main_background.png"]]];

        self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:_sideButton] autorelease];

        self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:_postButton] autorelease];

        self.navigationItem.titleView = _sliderSwitch;

        self.strollTableView.scrollsToTop = YES;

    }

    - (void)initSliderSwitch

    {

        _sliderSwitch = [[XWSliderSwitch alloc] initWithFrame:CGRectMake(0, 0, 118, 29)];

        _sliderSwitch.labelCount = 2;

        _sliderSwitch.delegate = self;

        [_sliderSwitch initSliderSwitch];

        [_sliderSwitch setSliderSwitchBackground:[UIImage imageNamed:@"top_tab_background2.png"]];

        [_sliderSwitch setLabelOneText:@"干货"];

        [_sliderSwitch setLabelTwoText:@"嫩草"];

    }

    这就告诉别人,这是个私有方法,只在本类中通过[self xxxMethods];调用

    (3)说明这是共有方法

    #pragma mark - Public methods

    //点击侧边栏按钮

    - (void)sideButtonDidClicked

    {

        SideBarShowDirection direction = [SideBarViewController getShowingState] ? SideBarShowDirectionNone : SideBarShowDirectionLeft;

        if ([[SideBarViewController share] respondsToSelector:@selector(showSideBarControllerWithDirection:)]) {

            [[SideBarViewController share] showSideBarControllerWithDirection:direction];

        }

    }

    这样就告诉其他读者,这是类对象的方法,一般不在本类中调用,是对外开放的。

    (4)说明这是UI控件事件触发的方法

    #pragma mark - UIAction methods

    - (void)buttonClicked:(id)sender

    {

        //其实这个方法写的已经见名知意了   

    }

    -(IBAction)cancel:(id)sender

    {

        [self.view removeFromSuperview];

    }

  • 相关阅读:
    jxl切割excel文件
    Oracle 11g新增not null的字段比10g快--新特性
    再按一次退出程序
    项目进阶 之 集群环境搭建(一)概述
    分布式搜索elasticsearch 环境搭建
    WikiCFP--A Wiki for Calls For Papers
    Java的结构之美【2】——销毁对象
    Java的结构之美【1】——构造对象
    Bottle 中文文档
    我的算法学习之路
  • 原文地址:https://www.cnblogs.com/benpaobadaniu/p/4626796.html
Copyright © 2020-2023  润新知