一、回滾
遇到這樣的問題:
1、解決方法 選擇read from disk
2、將xcode退出,重新開啟
二、目錄
1、如果weexjsfile是乙個groups
nsstring *steeer = [[nsbundle mainbundle] pathforresource:@"registerorderpay" oftype:@"js"];
這個是有的
並且是:
2、但如果這是乙個檔案
nsstring *steeer = [[nsbundle mainbundle] pathforresource:@"registerorderpay" oftype:@"js"];
這個就沒有
3、[nsbundle mainbundle] bundlepath]是
4、猜想
只要是group
所有檔案都是[nsbundle mainbundle] bundlepath]的子目錄,這個猜想是對的。
5、+ (nullable nsstring *)pathforresource:(nullable nsstring *)name oftype:(nullable nsstring *)ext indirectory:(nsstring *)bundlepath;
這個介面幹嘛用的
這個介面是指定路徑,在指定路徑裡面尋找你要想找的檔案。
6、沙箱的作用是隔離應用程式,每個應用程式只能操作自己的沙箱中的東西
// 應用程式的bundle相當於是乙個唯讀的沙箱環境
8、歸檔檔案也是寫入沙盒裡面
9、可以斷定group是平行拷貝,資料夾是樹形拷貝
10、nsarray *arr = [nsbundle allbundles];
11、還要匯入方式只能用fonder形式,而不能用grounps形式
fonder是原始檔案,而groups是虛擬檔案
三、列表優化建議
1、然後列表所有資料都是提前計算好
2、再渲染
3、渲染用的是非同步渲染
4、yylabel
5、也改了一些東西
6、你把列表用的所有資料都提前算好,放到乙個model裡面去
7、然後渲染的時候label用yylabel渲染
8、不是 後台給後台的
9、我們客戶端自己計算好所有要用的資料
10、列表裡面顯示只需要拿到資料賦值就行
11、不需要做任何的初始化東西
12、cell裡面不要帶資料的任何計算
13、就是賦值
14、列表那個**所需要的資料數組裝的是model
15、這個model就是裡面資料提前算好再放陣列
16、然後檢視層次減少一些
17、cell裡面自定義的子檢視不要太多
18、label的話
19、用yylabel
四,字串
1、-(bool)hasprefix:(nsstring *)// astring ;檢查字串是否以astring開頭
2、-(bool)hassuffix:(nsstring *) // astring;檢查字串是否以astring結尾
3、 capitalizedstring:將字串的首字母大寫
五、pod install 和update的區別
作者寫的很棒
簡單來說
1、使用pod install 來安裝新的庫,即使你的工程裡面已經有了podfile,並且已經執行過pod install 命了;所以即使你是新增或移除庫,都應該使用pod install。
2、使用pod update [podname]只有在你需要更新庫到更新的版本時候用。
4、pod outdated:
當你執行pod outdated命令,cocoapods會列出那些所有較podfile.lock裡面有新版本的庫(那些當前被安裝的庫的版本)。這個意思就是,如果你執行pod update podname,如果這個庫有新的版本,並且新版本仍然符合在podfile裡的限制,它就會被更新。
5、pod update:
當你執行 pod update podname 命令時,cocoapods會幫你更新到這個庫的新版本,而不需要考慮podfile.lock裡面的限制,它會更新到這個庫盡可能的新版本,只要符合podfile裡面的版本限制。如果你執行pod update,後面沒有跟庫的名字,cocoapods就會更新每乙個podfile裡面的庫到盡可能的最新版本。
6、正確做法
你應該使用pod update podname去只更新某個特定的庫(檢查是否有新版本,並盡可能更新到新的版本)。對應的,你應該使用pod install,這個命令不會更新那些已經安裝了的庫。
當你在你的podfile裡面新增了乙個庫的時候,你應該使用pod install,而不是pod update,這樣既安裝了這個庫,也不需要去更新其它的已安裝庫。
你應該使用pod update去更新某個特定的庫,或者所有的庫(在podfile的限制中)。
7、提交你的podfile.lock檔案:
在此提醒,即使你一向以來,不commit你的pods資料夾到遠端倉庫,你也應該commit並push到遠端倉庫中。
要不然,就會破壞整個邏輯,沒有了podfile.lock限制你的pods中的庫的版本。
六,tcp/ip
1、這兩個埠最大的區別就在於服務不同。
埠:80
服務:http
說明:用於網頁瀏覽。木馬executor開放此埠
埠:443
服務:https
說明:網頁瀏覽埠,能提供加密和通過安全埠傳輸的另一種http
https(secure hypertext transfer protocol)安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層(ssl)進行資訊交換,簡單來說它是http的安全版。
https和http的區別:
https協議需要到ca申請證書,一般免費證書很少,需要交費。
http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議
http和https使用的是完全不同的連線方式用的埠也不一樣,前者是80,後者是443。
http的連線很簡單,是無狀態的 https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議 要比http協議安全
2、192.168.1.1是路由器主機位址
一般使用者名稱是admin
七、迴圈結構中break、continue、return和exit的區別
1.break語句的使用場合主要是switch語句和迴圈結構。在迴圈結構中使用break語句,如果執行了break語句,那麼就退出迴圈,接著執行迴圈結構下面的第一條語句。如果在多重巢狀迴圈中使用break語句,當執行break語句的時候,退出的是它所在的迴圈結構,對外層迴圈沒有任何影響。如果迴圈結構裡有switch語句,並且在switch語句中使用了break語句,當執行switch語句中的break語句時,僅退出switch語句,不會退出外面的迴圈結構。通過圖3-17,讀者可以很直觀地了解break語句的使用。
2. continue
continue語句是這5種結束迴圈的方式中最特殊的,因為它並沒有真的退出迴圈,而是只結束本次迴圈體的執行,所以在使用continue的時候要注意這一點。圖3-18為各種迴圈結構中continue語句的使用。在for迴圈中,首先執行表示式1(注意表示式1在整個迴圈中僅執行一次),接著執行表示式2,如果滿足條件,那麼執行迴圈體,如果在迴圈體中執行了continue語句,那麼就跳轉到表示式3處執行,接下進行下一次迴圈,執行表示式2,看是否滿足條件;在while迴圈中,如果執行了continue語句,那麼就直接跳轉到表示式處,開始下一次的迴圈判斷;在do while迴圈體中如果執行了continue語句,那麼就跳轉到表示式處進行下一次的迴圈判斷,這一點前面已經驗證過了。
近期學習筆記
js筆記 1.可以把 2.除法中infinity infinity nan 有限大的數值除以無限大的數值結果是有限大的數值,有限大的數值除以 0結果是 nan,無窮大值除以有限大值結果是 nan3.加法,有乙個數是nan 則結果是 nan,infinity infinity 結果是nan 4.字串相...
近期筆記和心情總結
心情總結 秋招嵌入式失利,是因為我確實在硬體方面學的很差,春招我改投軟體方面,這些天挺失望的,簡歷乙份份的被拒,很多都不給一次筆試的機會,我也知道是為什麼,因為學歷不符,專業不符。這些天大家考研上岸的訊息不斷傳來,我一遍遍的在內心質問自己,我真的選錯了嗎?我是不是應該去考研,而不是像當時那樣一腔熱血...
Unity自學筆記 近期錯誤彙總
最近在設定乙個空的遊戲體,作為飛機大戰遊戲的邊界碰撞體 用來銷毀飛機 彈出了這個錯誤 actor updatemassfromshapes compute mesh inertia tensor failed for one of the actor s mesh shapes please cha...