iOS tips 10

2016-05-10 | 阅读

模板文件

在使用xcode时,创建一个新的类,如创建一个UIViewController,默认会附带这些代码:

@implementation SimpleVC

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/
@end

这些代码的创建就是使用了系统的模板文件,则我们如果创建了自己的模板文件,对一些类的格式进行规范,并对必须实现的函数给出类的入口,总之能极大的提高效率.

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source这个目录下,可以看到系统提供的一些模板.

模板的编写格式,头文件一般这样编写:

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//

___IMPORTHEADER_cocoaTouchSubclass___


@interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___


@end

.m文件中一般为:

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//

#import "___FILEBASENAME___.h"

@interface ___FILEBASENAMEASIDENTIFIER___ ()


@end


@implementation ___FILEBASENAMEASIDENTIFIER___

@end

中间就可以随便添加自己想要的函数,或者program -mark,或者属性,或者任何东西了.

然后是在系统中配置,使用这个模板文件. 将模板文件放在一个以类名+类型名的文件夹中,文件夹放在上面提到的系统目录中. 类型名指 :

  • Objective-C : OC类
  • XIBObjective-C : 带Xib的OC类
  • Swift : swift类
  • XIBSwift : 带XIB的swift类

这四种,则如果我们以SampleClass为例,创建类模板文件,则这里创建的文件夹名称应该为SampleClassObjective-C,文件夹下类文件的名称要改为___FILEBASENAME___.h___FILEBASENAME___.m文件.

然后修改系统的配置文件TemplateInfo.plist,也在当前这个目录下.在文件的Option->Item 1->Suffixes/Values中, 对Suffixes添加类名SampleClass,和对应子类的后缀,如SClass.然后在Values下添加这个自定义模板类的类名SampleClass,则修改完成,可以在Xcode中尝试使用这个类模板文件了.

Xcode导入图片导致色差

默认载入图片居然是被处理过的,不是原始图片,在右侧的image set中,将选项Render As属性改为Origin Image,不然图片是被处理过的,会有色差.

Xcode各种问题的记录:

  • 运行模拟器时 遇到错误 An Error war encountered while running(Domain = FBSOpenApplicationErrorDomain, Code = 4)

    解决方法 :重启模拟器解决问题.

  • Xcode Launch service error

    解决方法 : clean 一下

  • 清理缓存,缓存目录在:

      /Users/lxm/Library/Developer/Xcode/DerivedData/
    

mac的Rootless机制

OS X El Capitan中,在内核下引入了Rootless机制,以下路径:

/System
/bin
/sbin
/usr (except /usr/local)

均属于Rootless范围,即使root用户无法对此目录有写和执行权限,只有Apple以及Apple授权签名的软件(包括命令行工具)可以修改此目录

重启,开机按住Command + R,以Recovery分区启动,然后选择命令行操作,输入csrutil disable.