IOS開發學習筆記之問題集錦解決方案

2021-06-23 04:51:11 字數 1804 閱讀 4212

ios開發學習筆記之問題集錦解決方案是本文要介紹的內容呢,主要講解了uitextfielduitableviewnspredicate等一些問題的解決,我們先來看詳細內容。

用正規表示式使uitextfield接受規定的值 只能輸入非零開頭的正整數用下面的**

- (bool)textfield:(uitextfield *)textfield shouldchangecharactersinrange:  

(nsrange)range replacementstring:(nsstring *)string  

#endif 

nspredicate筆記

nspredicate *p = [nspredicate predicatewithformat:@"self like[c] %@", @"aa*bb"]; 

其中:self大小寫都行。

aa*bb使用了萬用字元,*號只能寫在變數中,而不能這樣

@"self like[c] %@*%@", @"aa", @"bb" 

字串本來是要用引號括起來的,不過這裡不用加,nspredicate會自動加。

測試布林值

nspredicate *p = [nspredicate predicatewithformat:@"self == no"];   

bool b1 = [p1 evaluatewithobject:[nsnumber numberwithbool:no]];    

nspredicate *p2 = [nspredicate predicatewithformat:@"self == %@",   

[nsnumber numberwithbool:no]];      

bool b2 = [p2 evaluatewithobject:[nsnumber numberwithbool:no]]; 

動態屬性名

下面這種nspredicate

nspredicate *p = [nspredicate predicatewithformat:@"name = %@", @"jimmy"]; 

有時候我們可能想讓name這個關鍵字,也變成變數,寫在外面,那樣就可以寫乙個更通用的nspredicate了。於是很自然地想到了下面的**:

nsstring *key = @"name";     

nsstring *value = @"jimmy";      

nspredicate *p = [nspredicate predicatewithformat:@"%@ = %@", key, value]; 

這樣,如果在執行到第三句之前,我們可以改變key和value的值,讓其更通用。想法是好的,但是這樣是錯的,前面說過,nspredicate要自動新增引號,所以最後得到的格式應該是@"'name' = 'jimmy'"。明顯不對。要做的就是:

nsstring *key = @"name";      

nsstring *value = @"jimmy";      

nspredicate *p = [nspredicate predicatewithformat:@"%k = %@", key, value];

iOS 開發問題集錦(一)

最近在qq群裡好多人問一些比較基礎的問題,在這羅列一下 1 鍵盤上的斜槓鍵壞掉了,怎麼樣用快捷鍵進行注釋呢?首先在xcode中注釋的預設快捷鍵為 command 其次可以自行修改快捷鍵 xcode preferences.key bindings,如下圖 2 xcode中的導航區域關閉了,如何調出來...

iOS開發學習筆記 UIWindow

1.uiwindow概述 1 整個程式中只有乙個uiwindow物件 2 在程式級別上表示螢幕視窗 3 uiwindow是乙個特殊的uiview,也繼承於uiview 2.建立uiwindow物件 以及注釋 uiscreen 硬體螢幕表示類 mainscreen 獲得主螢幕裝置資訊 bounds 螢...

iOS開發學習筆記 UITableview

1.工程勾選支援arc 2.利用ib拖乙個uitableview並且連線委託 用uitableview實現簡單的文字和顯示 import inte ce viewcontroller uiviewcontroller property strong,nonatomic iboutlet uitabl...