NSLog的调试技巧

问题

在开发中,难免会进行NSLog调试,但是我们知道NSLog非常耗性能,在程序发布的时候最好把NSLog都去掉,但是这样一来工程量比较大

解决方案

1.项目中创建pch文件,将NSLog定义为宏

1
2
3
4
5
6
7
8
9
10
11
// 保证 #ifdef 中的宏定义只会在 OC 的代码中被引用
// 否则,一旦引入 C/C++ 的代码或者框架,就会出错!
#ifdef __OBJC__
#ifdef DEBUG
#define NSLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#define NSLog(...)
#endif
#endif

more >>

OC中字典用法总结

不可变字典对象(NSDictionary)

创建及初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
dictionary:方法:创建字典
dictionaryWithContentsOfFile:方法:将创建的字典内容设置为指定文件内容
dictionaryWithContentsOfURL:方法:将创建的字典内容设置为指定url内容
dictionaryWithDictionary:方法:用字典创建字典
dictionaryWithObject:方法:创建具有一个键-值的字典 
dictionaryWithObjects:方法:创建具有多个键-值的字典
dictionaryWithObjectsAndKeys:方法:创建具有多个键-值的字典
init:方法:初始化字典
initWithContentsOfFile:方法:将初始化的字典内容设置为指定文件内容
initWithContentsOfURL:方法:将初始化的字典内容设置为指定url内容
initWithDictionary:方法:用字典初始化字典
initWithObjects:方法:初始化具有多个键-值的字典
initWithObjectsAndKeys:方法:初始化具有多个键-值的字典

more >>

OC中数组总结

不可变数组(NSArray)

创建及初始化

1
2
3
4
5
6
7
8
9
10
11
array:方法:创建数组
arrayWithArray:方法:通过一个数组创建另一个数组
arrayWithContentsOfFile:方法:创建数组将内容设置为指定文件内容
arrayWithContentsOfURL:方法:创建数组将内容设置为url指定内容
arrayWithObject:方法:创建具有一个元素的数组
arrayWithObjects:方法:创建具有多个元素的数组
init:方法:初始化数组
initWithArray:方法:用数组初始化数组
initWithContentsOfFile:方法:初始化数组将内容设置为指定文件内容
initWithContentsOfURL:方法:初始化数组将内容设置为url指定内容
initWithObjects:方法:初始化具有多个元素的数组

more >>

字符串总结

字符串对象(NSString) 

创建及初始化

string:方法:创建字符串

1
2
3
4
5
6
stringWithstring:方法:用字符串来创建字符串
stringWithCstring:方法:创建C字符串
stringWithFormat:方法:创建NSLog()格式的字符串
stringWithContentsOfFile:方法:将创建的字符串设置为指定文件的内容
stringWithContentsOfURL:方法:将创建字符串设置为url的内容
stringWithUTF8String:方法:将创建的字符串转换为UTF8字符串

init:方法:初始化字符串

1
2
3
4
5
6
initWithString:方法:用字符串来初始化字符串
initWithCString:方法:初始化字符串
initWithFormat:方法:用NSLog()格式初始化字符串
initWithContentsOfFile:方法:将初始化的字符串设置为指定文件的内容
initWithContentsOfURL:方法:将初始化的字符串设置为url的内容
initWithUTF8String:方法:将初始化的字符串转换为UTF8字符串

more >>

微信链接跳转App

需求

但凡是个项目都会有微信分享的功能,将自己的App的优点分享给自己的微信好友来推广自己的App,但是腾讯又不是傻子,他怎么会让别人通过自己的软件来推广其他App,所以之前工程师通过自定义scheme跳转到自己的应用,现在是行不通的;

微信内置的浏览器(朋友圈的浏览器)值有http和微信自己的合作伙伴的scheme才能跳转

more >>

App之间的跳转

需求

一个App跳转到另一个App

实现

创建俩个Demo,app1和app2,实现app1跳转至app2:

1.app2内配置协议(scheme),名字随意起(一般是项目名倒序,英文),配置完成后需要运行app2,相当于注册了scheme

more >>

一个极端的clang error问题

问题

今天跟同事合并代码的时候,出现了一个”clang error:no such file or dicectory”错误,之前遇到这种情况也多了去了,用了之前的很多方法都没有解决,最后还是接近下班的时候灵光一现,解决了(要不说接近下班的时间是工作效率最高的呢),废话不多说,下面跟大家分享一下我们的错误,引以为戒:

more >>

这个人很帅<br>他什么都不想说<br>