【iOS】小知识点_AND_踩过的坑

目录:

一. 小知识点
  1. 开发中如何抛出异常
  2. 判断某个数据的类型(BOOL/int/NSUInteger/void/id等)
  3. 修改.gitignore生效的方法
  4. Xcode中自己添加警告的方法
  5. ios10跳转到设置界面
  6. 移除项目的cocopods重新安装
  • Mark
二. 踩过的坑
  1. 证书过期
  2. AFN报错
  3. Analyze 报clang错误
  4. git push报错
  • Mark

一. 小知识点

  1. **开发中如何抛出异常 **
  • 创建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;
  1. 判断某个数据的类型(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

  1. 修改.gitignore生效的方法
    【iOS】小知识点_AND_踩过的坑_第1张图片
    修改生效说明
git rm -r --cached .
git add .
  1. Xcode中自己添加警告的方法

    添加警告用于标记

    注意:警告后面文字只能识别英文。。。。。。。

  2. ios10跳转到设置界面

NSString * urlString = @"App-Prefs:root=Privacy";
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlString]]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString] options:@{} completionHandler:nil];
    }
  1. 移除项目的cocopods重新安装
  • 打开终端,运行sudo gem install cocoapods-deintegrate安装快速解除项目cocopods依赖的库
  • 安装成功后,cd到你项目的更目录运行pod deintegrate解除项目cocopods依赖
  • 运行pod install,重新安装cocopods
  • Mark

二. 踩过的坑

  1. 证书过期

    【iOS】小知识点_AND_踩过的坑_第2张图片
    证书过期说明

    下载最新证书地址

  2. AFN报错

    【iOS】小知识点_AND_踩过的坑_第3张图片
    JSON不能从对象选取什么玩意的

    AFURLResponseSerialization.m中可以修改AFN支持的格式 比如增加text/html
    【iOS】小知识点_AND_踩过的坑_第4张图片
    AFN不可接受类型text/html

  3. Analyze 报clang错误


    解决方法:Apple LLVM compiler 4.2- Language ->c++ Standard Library 修改为 libstdc++ (GNU C++ standard library)
    解决方法

  4. git push报错

    【iOS】小知识点_AND_踩过的坑_第5张图片
    报错截图

    如上图所示一共四个错误相关的信息

    1. remote: error: insufficient permission for adding an object to repository database ./objects
    2. remote: fatal: failed to write object
    3. error: unpack failed: unpack-objects abnormal exit
    4. 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

你可能感兴趣的:(【iOS】小知识点_AND_踩过的坑)