謹慎使用viewWithTag

2021-07-30 10:45:45 字數 664 閱讀 7939

uilabel *cl_title = [self viewwithtag:101];

cl_title.text = infos[@"total_time"];

uilabel *cl_distance = [self viewwithtag:102];

cl_distance.text = infos[@"distance"];

uilabel *cl_time = [self viewwithtag:103];

cl_time.text = infos[@"time"];

for (uiview *view in self.subviews) else if (view.tag == 102)else if (view.tag == 103)

}

對於這兩段**來說,都是為了查詢tag值為101,102,103的label。但是第一段的**如果父類的tag值也為101,102或103其中乙個,那麼在查詢tag值為101,102,103的子檢視的時候第一段就會出問題,它會先從self本身查詢,如果self.tag= 101等值,那麼uilabel *cl_title = [self viewwithtag:101];獲取的label就是self本身,所以你要明確你自己的目的,到底是不是為了查詢子檢視,所以一定要慎用。

對於drawRect使用,謹慎使用

1.drawrect簡介 drawrect方法在uiview的使用上起著十分關鍵的作用。不知道大家注意過沒有,每一次建立uiview子類檔案時候,會有自動帶有已注釋的drawrect方法,也許從這一點就能看出這個方法的重要性。該方法定義在uiview uiviewrendering 分類裡面,望文生...

union的謹慎使用

include using namespace std float float666 myfloat 666 myinteger myinteger 1 return myfloat int main float float666 float666 coutmyinteger也被賦值了,myinte...

使用lock this 需要謹慎

原文 lock this 容易出錯,比如物件有多個例項,如果成員函式用了lock this 外部又用了lock obj 會造成死鎖。lock this 導致鎖住整個物件,當執行不需要鎖的函式時也被鎖了 當我們使用執行緒的時候,效率最高的方式當然是非同步,即各個執行緒同時執行,其間不相互依賴和等待。但...