一周隨筆 15 9 21

2022-08-30 03:18:10 字數 3051 閱讀 8072

- (bool)writetofile:(nsstring *)path atomically:(bool)useauxiliaryfile;

第二個引數的意思是:

如果為yes則保證檔案的寫入原子性,就是說會先建立乙個臨時檔案,直到檔案內容寫入成功再匯入到目標檔案裡.

如果為no,則直接寫入目標檔案裡.

引數依次為:

1、錯誤域(nsstring)

2、錯誤標識 (nsinteger)

3、錯誤資訊(字典)

nserror *error = [nserror errorwithdomain:@"錯誤域" code:400 userinfo:@];

nslog(@"%@",error.localizeddescription);

nslog(@"%@",error.description);

注意:error.description並不是錯誤資訊,nserror沒有description這個屬性來描述錯誤資訊,這是對error物件的描述

參考ios7.0以後如果導航欄translucent為yes,即半透明,那麼self.view的始終是以螢幕左上角為座標(0,0)點的。

如果導航欄translucent為no,即不透明。那麼self.view在載入完畢之後,即檢視控制器的viewdidload方法之後(注意是之後,不包括viewdidload),它的區域不包括導航欄部分,即以導航欄左下角點為座標(0,0)點,高度也是螢幕高度減去了導航欄高度和狀態列高度。

dispatch_async(dispatch_get_main_queue(), ^);

**示例如上

在主佇列中新增任務,並通過非同步函式執行。因為主佇列中的任務只能在主線程中執行,因此不開闢新的執行緒,那麼該任務在主線程中是序列執行的。這樣的話上面**直接替換成[self initbaseview];有什麼區別呢?

區別在於:加入viewdidload:方法裡有3段**,按順序從上到下依次為a b c。其中b為[self initbaseview];

執行之後,發現3段**的執行順序為a,b,c,沒有任何問題。但是如果將b放在主佇列中用非同步函式執行,那麼執行的順序將會是a,c,b。

關於建立圖形上下文的兩個方法

方法一:uigraphicsbeginimagecontextwithoptions(cgsize size, bool opaque, cgfloat scale);

方法二:uigraphicsbeginimagecontext(cgsize size);

方法一中3個引數依次表示:

size:建立的圖形上下文的尺寸大小

opaque:圖形上下文是否透明yes為不透明(當圖形完全不透明是設定成yes,否則設定成no,以優化效能)

scale:影象縮放比例(用於調整影象解析度)。

在理解之前首先要知道的是,對於手機螢幕而言,我們用解析度在衡量螢幕的清晰度。解析度的單位是畫素,以iphone6為例,解析度為750*1336畫素。iphone6螢幕的點數是375*568。因此iphone6螢幕乙個點包含4個畫素(2*2)。這個2就對應螢幕的scale屬性,可以通過[uiscreen mainscreen].scale來獲取。

理解了上面內容,方法中的scale就不難理解了。這個scale是獲取到的影象的縮放比例(或者說是縮放因子),它決定了獲取到的影象的解析度。簡單理解,假如scale的值為2,那麼獲取到的影象乙個點有4個畫素(長寬各2個)。通常我們把scale的值設定成0,表示設定成預設的縮放比例(跟螢幕相同),對於配備了兩倍retain屏的iphone4s、5、5s、6、6s,這個縮放比例預設就是2;如果是6p、6sp,則預設是3,因此scale設定成0或設定成2對於iphone4s、5、5s、6是一樣的。

對於方法二而言,並沒有scale這個引數,其實它的預設值為1,並不是0。因此用這個方法建立圖形上下文得到的影象質量會比較低(除非iphone3gs)。影象的質量從影象的大小就能區別出來,將獲取到的影象儲存到沙盒,檢視影象大小,輕鬆辨別。

- (uiview *)snapshotviewafterscreenupdates:(bool)afterupdates

這個方法製作了乙個uiview的副本,引數afterupdates

表示是否在所有效果應用在檢視上了以後再獲取快照。例如,如果該引數為no,則立馬獲取該檢視現在狀態的快照,反之,以下**只能得到乙個空白快照:  

uiview *snapshot =[view snapshotviewafterscreenupdates:yes];

[view setalpha:

0.0];

另外一種ios7之後的方法,可以將要擷取中的uiview繪製在圖形上下文的指定區域,然後獲取影象來達到快照效果。

- (bool)drawviewhierarchyinrect:(cgrect)rect afterscreenupdates:(bool)afterupdates

作用物件:要擷取的uiview物件

引數說明:

rect:圖形上下文上的區域,不是uiview的區域。將uiview繪製到圖形上下文rect的區域上。

#ifdef

debug

#define debuglog(format,…) nslog(@"" format, __function__,__line__,##__va_args__)

#else

#define debuglog(format,…)

#endif

系統巨集介紹:

__line__:巨集在預編譯時會替換成當前的行號

__function__:巨集在預編譯時會替換成當前的函式名稱

__va_args__:簡單的說,就是將左邊…的內容替換進來

##:巨集連線符

參考&:按位與

|:按位或

^:按位亦或

~:取反

>>:右移

參考1.先將執行模式設定為真機

2.xcode上面選單——product——archive

3.右擊工程,在finder中開啟

5.開啟itunes,將該拖進去,這樣就能在itunes的應用程式一欄找到打包好的ipa檔案了。

一周工作隨筆

幾個網路安全的同事從美國回來,有人問起美國人的技術怎麼樣,這個我倒是不清楚,但是他們首席程式設計師的兒子都大學畢業了,做介面的都有7年工作經驗。我的神啊上帝以及老天爺啊!多長的技術生命啊!怪不得大師大多出自美國呢。我也曾經將製作介面看作沒有技術含量的工作,直到有一天在書店裡看到一本關於介面設計的書,...

一周隨筆 0929

今天週日,因為國慶放假,今天又補了周五的課,苦逼的一天從一上午手機沒電開始 雖然國慶放假一周,但是對於我們卻是沒有假期的,國慶七天又可以愉快地學習了,哈哈 本週事宜 這週呢,招新基本結束,繁忙的日子終於是過去了,我們也迎來了新的血液。而自從暑假過後,小組的紀律明顯下降,這幾天針對小組最近的各種情況,...

一周隨筆(1201)

細細想想,這周似乎是十四周了,大三的第一學期馬上完畢,又要開始面臨緊張刺激的期末考試了,事物繁多,還有好多事。最近也新來了乙個專案,比較好,打算用vue寫,開發周期乙個月,但是面臨的最大的問題,還是期末考試這個坎。老師也給我們說了很多,有困難就要學會去克服,每天抽出一點時間去學習課上的知識,期末是沒...