天天看點

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.

IOS的捕獲異常機制,屏蔽警告以及Cocoapods的詳細使用和常見錯誤

解決方式:

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

02.錯誤:使用 gem sources -a https://ruby.taobao.org/報錯

IOS的捕獲異常機制,屏蔽警告以及Cocoapods的詳細使用和常見錯誤

解決方法:

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