IOS的捕获异常机制,屏蔽警告以及Cocoapods的详细使用和常见错误

  • 如何屏蔽警告
#pragma clang diagnostic push

    #pragma clang diagnostic ignored "-Warc-performSelector-leaks"

            //-Warc-performSelector-leaks为唯一的警告标识

            [self performSelector:selector withObject:nil];

    #pragma clang diagnostic pop
  •    如何处理异常

01 一般处理方式:

    a.app异常闪退,那么捕获crash信息,并记录在本地沙盒中。

    b.当下次用户重新打开app的时候,检查沙盒中是否保存有上次捕获到的crash信息。

    c.如果有那么利用专门的接口发送给服务器,以求在后期版本中修复。

02 如何抛出异常

 //抛出异常的两种方式

        // @throw  [NSException exceptionWithName:@"好大一个bug" reason:@"异常原因:我也不知道" userInfo:nil];

        //方式二

        NSString *info = [NSString stringWithFormat:@"%@方法找不到",NSStringFromSelector(aSelector)];

        //下面这种方法是自动抛出的

        [NSException raise:@"这是一个异常" format:info,nil];

03 如何捕获异常

    NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler);

    void UncaughtExceptionHandler(NSException *exception) {

    NSArray *arr = [exception callStackSymbols];//得到当前调用栈信息

    NSString *reason = [exception reason];//非常重要,就是崩溃的原因

    NSString *name = [exception name];//异常类型



    NSString *errorMsg = [NSString stringWithFormat:@"当前调用栈的信息:%@\nCrash的原因:%@\n异常类型:%@\n",arr,reason,name];

    //把该信息保存到本地沙盒,下次回传给服务器。

}

Cocoapods

1.先升级Gem

    sudo gem update --system

2.切换cocoapods的数据源

    【先删除,再添加,查看】

    gem sources --remove https://rubygems.org/

    gem sources -a https://gems.ruby-china.com/

    gem sources -l

3.安装cocoapods

    sudo gem install cocoapods

    或者(如10.11系统)sudo gem install -n /usr/local/bin cocoapods

4.将Podspec文件托管地址从github切换到国内的oschina

    【先删除,再添加,再更新】

    pod repo remove master

    pod repo add master http://git.oschina.net/akuandev/Specs.git

    pod repo add master https://gitcafe.com/akuandev/Specs.git

    pod repo update

5.设置pod仓库

    pod setup

6.测试

   【如果有版本号,则说明已经安装成功】

    pod --version

7.利用cocoapods来安装第三方框架

    01 进入要安装框架的项目的.xcodeproj同级文件夹(cd /Users/Alan/Desktop/Demo)

    02 在该文件夹中新建一个文件podfile(touch PodFile)

    03 在文件中告诉cocoapods需要安装的框架信息

        a.该框架支持的平台

        b.适用的iOS版本

        c.框架的名称

        d.框架的版本

platform : ios, '9.2'
pod 'SDWebImage', '~>3.9'

注: pod search用于搜索框架

8.安装(SDWebImage等框架)

pod install --no-repo-update 

pod update --no-repo-update

9.说明

platform :ios, '9.2' 用来设置所有第三方库所支持的iOS最低版本

pod 'SDWebImage','~>3.9' 设置框架的名称和版本号

版本号的规则:

'>1.0'    可以安装任何高于1.0的版本

'>=1.0'   可以安装任何高于或等于1.0的版本

'<1.0'    任何低于1.0的版本

'<=1.0'   任何低于或等于1.0的版本

'~>0.1'   任何高于或等于0.1的版本,但是不包含高于1.0的版本

'~>0'     任何版本,相当于不指定版本,默认采用最新版本号

10.使用pod install命令安装框架后的大致过程:

01.  分析依赖:该步骤会分析Podfile,查看不同类库之间的依赖情况。如果有多个类库依赖于同一个类库,但是依赖于不同的版本,那么cocoaPods会自动设置一个兼容的版本。

02. 下载依赖:根据分析依赖的结果,下载指定版本的类库到本地项目中。

03. 生成Pods项目:创建一个Pods项目专门用来编译和管理第三方框架,CocoaPods会将所需的框架,库等内容添加到项目中,并且进行相应的配置。

04. 整合Pods项目:将Pods和项目整合到一个工作空间中,并且设置文件链接。

11.一些安装过程中的错误

01.错误:You don't have write permissions for the/usr/bin/director.

解决方式:

sudo gem install -n /usr/local/bin cocoapods

02.错误:使用 gem sources -a https://ruby.taobao.org/报错

解决方法:

gem sources -a https://gems.ruby-china.com/

猜你喜欢

转载自blog.csdn.net/weixin_42433480/article/details/89440887