美文网首页
新秋二十八 iOS小记 【文件夹资源添加方式对比/计算代码执行时

新秋二十八 iOS小记 【文件夹资源添加方式对比/计算代码执行时

作者: 不不不不同学 | 来源:发表于2019-07-28 01:08 被阅读0次

目录
一、NSInteger 长度
二、计算代码执行时间
三、文件夹资源添加方式对比

一、NSInteger长度

typedef long NSInteger;
NSinteger 的长度会随着处理器的不同而不同 :

  • 32位 32-bit integer
  • 64位 64-bit integer

iPhone A7处理器之后都是64位包含A7

在64位机模拟器上,代码测试结果是:

2的62次方是 4611686018427387904
2的63次方减1是 9223372036854775807
2的63次方是 -9223372036854775808
2的64次方是 0

得出结论:NSInteger在64位取值范围是[2的 -63次方]~[2的63次方减1]

二、计算代码执行时间

CFAbsoluteTime startTime = CFAbsoluteTimeGetCurrent();
CFAbsoluteTime linkTime = (CFAbsoluteTimeGetCurrent() - startTime);
NSLog(@"%f ms", linkTime *1000.0);

三、文件夹资源

小节目录
1、直接拖入文件
2、直接拖入文件夹
3、直接拖入文件夹 引用方式

1、直接拖入文件

有时我们需要读取Xcode中的资源,通常使用以下方式:
(1)将文件拖入Xcode中,勾选 Copy items if needed,勾选 Create groups


(2)读取文件路径
NSString * path = [[NSBundle mainBundle] pathForResource:@"config" ofType:@"json"];

(3)文件位置
实际上,Xcode Command + B 编译后,Products文件夹下就会有App形式的文件出现。那刚拖入的文件,此时是在App中是处于什么位置的呢?如图:

2、直接拖入文件夹

同样勾选 Copy items if needed,勾选 Create groups

编译后结果:

注意:工程中有两个config.json
  • 若二者内容完全相同,则编译结果如上图
  • 若二者内容不同,则编译时会报错 Multiple commands produce

报错原因也从上图可得知,因为Xcode内这些文件最终都会被放置在一个目录下。则同名不同内容的文件,放同一目录,当然是不允许的。

小总结:该方式想编码过程,通过文件夹管理资源是不可能的,因为最终所属同一路径下。而原本的文件夹也不会被带过去。

3、直接拖入文件夹 引用方式

勾选 Copy items if needed,勾选 Create folder references

则编译结果为:

读取方式:

    NSString * basePath = [NSString stringWithFormat:@"%@/jsonFolder", [[NSBundle mainBundle] bundlePath]];
    NSString * filePath = [basePath stringByAppendingString:@"/config.json"];

小总结:即使两个文件同名不同内容,也没有任何影响。编译错误不会报错 Multiple commands produce。而编译出来的App中,原本文件夹形式存在的,也仍然以文件夹形式存在,编码过程可通过文件夹进行统一管理。

相关文章

网友评论

      本文标题:新秋二十八 iOS小记 【文件夹资源添加方式对比/计算代码执行时

      本文链接:https://www.haomeiwen.com/subject/sdiyrctx.html