我們在ios開發過程中,我們時常會使用nslog
列印到控制台的日誌資訊進行**除錯,但這樣除錯的前提是連線上xcode。
如果進行真機除錯但同時又不能連線xcode的時候,就不能直接在xcode的控制台檢視輸出日誌了,但是程式還是會執行那些log的,如果要檢視這些日誌,我們就需要把輸出日誌資訊儲存到檔案中,然後進行檢視。
標準nslog
的列印預設是往標準錯誤(stderr
)進行列印的,我們只需要修改nslog
的列印輸出路徑即可實現日誌重定向
以下是日誌重定向**:
#pragma mark - 使用者方法,將nslog的輸出資訊寫入到檔案中
/* 將nslog列印資訊儲存到document目錄下的檔案中 */
- (void)redirectlogtodocumentfolder
didfinishlaunchingwithoptions:(nsdictionary *)launchoptions
到這裡還沒結束,因為你的log日誌資訊已經列印到了真機應用的沙盒檔案中,你還需要把它拷貝到你的mac上進行檢視,你就需要設定共享檔案配置 :
在應用程式的1. 開啟檔案info.plist
檔案中新增uifilesharingenabled
鍵,並將鍵值設定為yes
。
file *fp = fopen(檔案路徑,開啟方式);
開啟方式:
2. 檔案操作char ch = fgetc(檔案指標);
作用:從檔案中讀取乙個字元
【fgetc和getc沒有區別,用法也一樣】
fputc(字元,檔案指標);
作用:寫入乙個字元到檔案
fgets(字元陣列,長度n,檔案指標);
作用:從檔案指標指向的檔案中讀取n-1個字元存到字元陣列裡,會自動在後面加\0,字元陣列用來儲存你讀取出來的字串
【遇到「\n」立即結束讀取】
fputs(字串,檔案指標);
作用:寫入乙個字串到檔案指標指向的檔案
fread(儲存資料的首位址,每塊的大小,多少塊,檔案指標);
作用:從檔案指標指向的檔案中分塊讀取(檔案指標),告訴它一次讀取多少塊(多少塊),每塊多大(第二個引數),存到哪(第乙個引數)
【它只關心具體讀的位元組數,不會關心這些自己裡面有沒有換行 】
fwrite(資料的首位址,每塊的大小,多少塊,檔案指標);
作用:將資料分塊寫入到檔案指標指向的檔案。第乙個是告訴系統,寫入什麼資料,第二個是告訴系統每塊多少位元組,第三個是告訴系統分多少塊寫入,第四個是寫入到哪個檔案
fscanf(檔案指標,格式化控制符,位址列表);
作用:格式化讀取
fprintf(檔案指標,格式化控制符,引數列表);
作用:格式化寫入
freopen(檔案路徑path, 開啟方式mode, 檔案指標fp);
作用:實現重定向,把預定義的標準流檔案定向到由path指定的檔案中。標準流檔案具體是指stdin
、stdout
和stderr
。其中stdin
是標準輸入流,預設為鍵盤;stdout
是標準輸出流,預設為螢幕;stderr
是標準錯誤流,一般把螢幕設為預設。
3. 關閉檔案
fclose(檔案指標);
iOS學習筆記40 日誌重定向
我們在ios開發過程中,我們時常會使用nslog列印到控制台的日誌資訊進行 除錯,但這樣除錯的前提是連線上xcode。如果進行真機除錯但同時又不能連線xcode的時候,就不能直接在xcode的控制台檢視輸出日誌了,但是程式還是會執行那些log的,如果要檢視這些日誌,我們就需要把輸出日誌資訊儲存到檔案...
iOS學習筆記40 日誌重定向
我們在ios開發過程中,我們時常會使用nslog列印到控制台的日誌資訊進行 除錯,但這樣除錯的前提是連線上xcode。如果進行真機除錯但同時又不能連線xcode的時候,就不能直接在xcode的控制台檢視輸出日誌了,但是程式還是會執行那些log的,如果要檢視這些日誌,我們就需要把輸出日誌資訊儲存到檔案...
iOS學習筆記 日誌重定向
我們在ios開發過程中,我們時常會使用nslog列印到控制台的日誌資訊進行 除錯,但這樣除錯的前提是連線上xcode。如果進行真機除錯但同時又不能連線xcode的時候,就不能直接在xcode的控制台檢視輸出日誌了,但是程式還是會執行那些log的,如果要檢視這些日誌,我們就需要把輸出日誌資訊儲存到檔案...