一些小知識點(3)

2021-07-15 18:52:15 字數 3480 閱讀 7283

請尊重原創,謝謝!

如何讓webview頁面不能下拉,不要露出下拉後面的背景和滑到底之後上滑後面的背景?

self.webview.scrollview.bounces = no;

vi檔案儲存退出命令 先按esc鍵 然後輸入:wq ,編輯時刪除當前游標所在位置的字元用x,readonly option is set add to override !時用sudo vi 不要用vi

uiwebview中禁止長按響應和放大鏡等預設互動行為:

文中說了兩種方法,一種是直接在css裡去禁止:

body.disable-default

-action

一種是在webviewdidfinishload裡禁止。

4. 預估行高可以減少行高計算方法被執行的次數

- (cgfloat)tableview:(uitableview *)tableview estimatedheightforrowatindexpath:(nsindexpath *)indexpath{

return

60;}

- (cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath

雖然estimatedheightforrowatindexpath也被執行了很多次,但是方法體裡直接return 乙個定值,不耗時。如果不加入這個方法,heightforrowatindexpath就被執行很多次,每次又一大堆**。

5. 關於build settings裡的配置

涉及到路徑的,因為此設定是寫在工程名.xcodeproj裡,所以其他都是在工程名的資料夾裡,如prefix header :jscalloc/prefixheader.pch

6. debug模式改release模式。edit scheme- run- info build configuration改release,debug executable勾掉。

7. 遮蔽nslog

#ifdef debug

#define njlog(...) nslog(__va_args__)

#else

#define njlog(...)

#endif

然後在**裡不用nslog用njlog,這樣在非debug模式下就不會列印log

或者這種:

#define disable_log

#ifndef disable_log

#define enable_log

#endif

#if defined(enable_log)

#define tlog(format, ...) nslog((@"%s@%d: " format), __pretty_function__, __line__, ##__va_args__)

#define clog(format, ...) nslog((@"%s@%d: " format), __pretty_function__, __line__, ##__va_args__)

#else

#define nslog(format, ...)

#define tlog(format, ...)

#define clog(format, ...)

#endif

這個意思就是如果定義了禁止log,那麼**中nslog就不再列印(還有一些其他你自定義的log)否則nslog沒被重定義,跟debug, release無關。

8. 關於各種空:

首先了解下c語言的各種型別:

各種空型別參考:

nil: nsobject物件空指標

nil: nsobject類空指標(比如說類存在則是個非nil的class,不存在則是nil。就比如initwithnibname:bundle:這個方法,if (self = [super initwithnibname:null bundle:null]))

null: 指向其他型別(如:基本型別、c型別int * char 、結構體ivar 、列舉、id型別(就比如上面的例子的型別就是可能是空也可能是字串,所以用了id型別))的空指標

nsnull:通常表示集合中的空值,為了佔位的。不能用空物件。

9. c語言中的const

const char * ch

const在*前面表示這是乙個字串常量指標,它所指向的字串不能被修改,但是這個指標的指向可以改變,它和char const *ch是一樣的,比如:

const

char *ch="123";//指向常量字串123,123的內容不能被修改,但可以改變ch的指向

ch="hello world!";//可以改變ch的指向

如果const在*的後面,則表示這是乙個指標常量,它的指向不能被修改,但可以修改批所指向的內容,比如:

char c = "123";

char * const ch=c;//ch的指向不能被修改,但它所指向的內容視情況可以被修改,

//比如由於c是個字元陣列,所以,可以通過ch修改c陣列的值

ch[0]='4';//修改c[0]為4,c變成"423

10. objc_msgsend 報錯:use of undeclared identifier 『objc_msgsend』 修錯方法:#import

-(void)screenshot:(id)sender

- (uiimage *)capturescrollview:(uitableview *)scrollview

totalrowcount+=rowcountinsection;

continue;

}else

}break;//跳出外層迴圈}}

uiimage* image = nil;

cgsize size = cgsizemake(scrollview.contentsize

.width, fifthrowmaxy);//不截全部截半截

uigraphicsbeginimagecontextwithoptions(size, no, 0.0);//畫板的高度與內容的高度相同fifthrowmaxy則不會出現多餘空白

// uigraphicsbeginimagecontext(scrollview.contentsize);

uigraphicsendimagecontext();

if (image != nil)

return

nil;

}

…..

13. 關於使用autolayout時有scrollview時如何設定

15. viewcontroller的生命週期:

16. 給工程新增pch檔案:

一些小知識點2

1.stat函式講解 表頭檔案 include include 定義函式 int stat const char file name,struct stat buf 函式說明 通過檔名filename獲取檔案資訊,並儲存在buf所指的結構體stat中 返回值 執行成功則返回0,失敗返回 1,錯誤 存...

一些小知識點小結

一 mysql計算日期 timestampdiff day,t3.payment due date,now datediff t.created date,t.start time 1 二 字段轉換 case t.marriage when 1 then 未婚 when 2 then 已婚 when...

一些小的知識點

malloc calloc 等記憶體分配函式所獲得的記憶體塊都來自乙個稱為堆 heap 的儲存池。記憶體洩漏 memory leak 是指程式中己動態分配的堆記憶體由於某種原因程式未釋放或無法釋放,造成系統記憶體的浪費,導致程式執行速度減慢甚至系統崩潰等嚴重後果。記憶體洩漏缺陷具有隱蔽性 積累性的特...