首先宣告這個方法非我原創!
這是乙個同學想出來的
下面我們來說一下具體實現,使用tag值時,因為是乙個毫無意義的數字,使用起來不免麻煩;加入我們使用字串來設定tag值,例如:alabel的tag值為「alabel」,我們定義檢視的時候,肯定不會定義相同名字的,那麼這樣是不是就更便於記了呢。
下面就來具體說說怎麼實現吧,
首先我們要為uiview設定類目: " uiview+tag "
uiview+tag.h :
#import @inte***ce uiview (tag)
- (void)settagwithname:(nsstring *)name;
- (uiview *)viewwithtagname:(nsstring *)name;
@end
uiview+tag.m :
#import "uiview+tag.h"
@implementation uiview (tag)
/** * tag值得偏移
*/static int tagoffset = 1000;
/** * 陣列單例,儲存所有的字串tag值
* * @return 儲存tag值得陣列
*/- (nsmutablearray *)gettagnamearray
); return tagnamearray;
};/**
* 為檢視設定字串tag值
* * @param name 字串tag值
*/- (void)settagwithname:(nsstring *)name
self.tag = ([tagnamearray indexofobject:name] + 1) *tagoffset; //設定數值tag值得偏移
}/**
* 通過字串tag值,獲取對應的檢視
* * @param name 字串tag值
* * @return 字串tag值對應的檢視
*/- (uiview *)viewwithtagname:(nsstring *)name
int tag = ([tagnamearray indexofobject:name] + 1) *tagoffset; //通過獲取到字串tag值所在陣列的的位置,而獲取的儲存的數值tag值
return [self viewwithtag:tag]; //返回數值tag值所對應的檢視
}@end
由此我們可以看到雖然是用字串儲存的tag值,但是內部我們還是使用的整型數字,我們只是對他進行乙個轉換,下面我們來試試能不能用吧
我們建立乙個檢視控制器,在viewdidload中:
- (void)viewdidload
建立乙個text方法:
- (void)test
下面我們看一下列印結果
注意:當你需要在不同的方法中定義檢視物件時,名字也不可以相同,因為雖然陣列中可以儲存相同的字串,我們在取檢視時是根據字串在陣列中下標來取,所以如果陣列中存在相同的字串,在取得時候會造成混淆,取出來的不一定是你想要的
兩個label的位址是一樣的,因為我們內部還是使用的系統的tag值,只不過給他包裝了一層方便使用,會用了麼。
這是乙個同學想出來的方法,一直只是腦子裡想,今天手動實現了一把。。
使用字串程式設計的模板
對函式引數判斷 乙個函式的引數判斷是應該最先考慮的,一般判斷下面的條件。if chars null return 0 if chars 0 0 return 1 字串雙指標的模板 很多時候我們會用雙指標從兩邊遍歷字串,下面就是簡單的模板 bool ispalindrome char s return...
字串 表示數值的字串
題目描述 實現乙個函式用來判斷字串是否表示數值 包括整數和小數以及使用科學計數法表示的數 分析 表示數值的字串的規則有 第乙個字元只能是 以及數字 數字字元後面只能接 或 e e 小數點後面必須要有字元且只能接數字字元或 e e e e 後面必須要接字元且只能接數字字元或者 後面必須要接數字字元 b...
表示數值的字串(字串)
題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路 1.第乙個數為 或者為 時,跳過。2.對於小數點 小數點只能出現一次 小數點不...