目录:
一. 小知识点
- 开发中如何抛出异常
- 判断某个数据的类型(
BOOL
/int
/NSUInteger
/void
/id
等) - 修改
.gitignore
生效的方法 - Xcode中自己添加警告的方法
- ios10跳转到设置界面
- 移除项目的cocopods重新安装
- Mark
二. 踩过的坑
- 证书过期
- AFN报错
- Analyze 报clang错误
- git push报错
- Mark
一. 小知识点
- **开发中如何抛出异常 **
- 创建
NSException
对象(没有实现,app挂掉)
NSString *reason = [NSString stringWithFormat:@"-[%@ %@]: unrecognized selector sent to instance %@", NSStringFromClass([self class]), NSStringFromSelector(aSelector), self];
NSException *exception = [[NSException alloc] initWithName:@"方法没有实现" reason:reason userInfo:nil];
- 抛出
@throw exception;
- 判断某个数据的类型(
BOOL
/int
/NSUInteger
/void
/id
等)
- 下面给出的是C语言比较两个字符串的,字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。
strcmp()
首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。
strcmp(<#const char *#>, <#const char *#>)
- Objective-C 的数据类型,甚至自定义类型、函数或方法的元类型,都可以使用 ASCII 编码。
@encode(aType)
可以返回该类型的 C 字符串(char *)
的表示
@encode(void)
- 根据上面介绍就可以判断是否为某一类型
strcmp(returnType, @encode(void)
如果前者属于后者类型则返回0,否则返回不为0
-
修改
.gitignore
生效的方法
git rm -r --cached .
git add .
-
Xcode中自己添加警告的方法
注意:警告后面文字只能识别英文。。。。。。。 ios10跳转到设置界面
NSString * urlString = @"App-Prefs:root=Privacy";
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlString]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString] options:@{} completionHandler:nil];
}
- 移除项目的cocopods重新安装
- 打开终端,运行sudo gem install cocoapods-deintegrate安装快速解除项目cocopods依赖的库
- 安装成功后,cd到你项目的更目录运行pod deintegrate解除项目cocopods依赖
- 运行pod install,重新安装cocopods
- Mark
二. 踩过的坑
-
证书过期
下载最新证书地址 -
AFN报错
AFURLResponseSerialization.m
中可以修改AFN支持的格式 比如增加text/html
-
Analyze 报clang错误
解决方法:Apple LLVM compiler4.2
- Language ->c++ Standard Library 修改为 libstdc++ (GNU C++ standard library)
-
git push报错
如上图所示一共四个错误相关的信息- remote: error: insufficient permission for adding an object to repository database ./objects
- remote: fatal: failed to write object
- error: unpack failed: unpack-objects abnormal exit
- error: failed to push some refs to 'xxxx.git'
google之后发现是服务器git仓库权限问题,验证方法进入公司git服务器查看权限参考博客
1. $ ssh username@ip
按照提示输入密码
2. $ cd /git/xxxx.git
就是进入服务器中对应无法push的仓库(路径就是你git clone ip地址后面的那个路径)
3. $ ls -la
![](http://upload-images.jianshu.io/upload_images/1168216-8c31bd5336752839.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
列出当前文件夹下文件参数,如果全是root说明没有当前文件夹下面文件权限是属于服务器,你使用git clone git@ip 是无法写入的
4. $ chown -R git:git your_git_pod_name.git
这个命令就是把文件权限交给git
- Mark