- (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的區域上。
#ifdefdebug
#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寫,開發周期乙個月,但是面臨的最大的問題,還是期末考試這個坎。老師也給我們說了很多,有困難就要學會去克服,每天抽出一點時間去學習課上的知識,期末是沒...