雖然這篇Nslog uicolor鄉民發文沒有被收入到精華區:在Nslog uicolor這個話題中,我們另外找到其它相關的精選爆讚文章
在 nslog產品中有3篇Facebook貼文,粉絲數超過3萬的網紅Charles Mok 莫乃光,也在其Facebook貼文中提到, 【📌 召喚coding高手sss 💻】 話說有人用Objective-C Format寫左呢段code,你又會點寫? int itVoteYouHave=1; if (date(voterRegistration)>20160502) { itVoteYouHave=0; } el...
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「nslog」的推薦目錄
- 關於nslog 在 KO_SLANG Instagram 的最佳貼文
- 關於nslog 在 KO_SLANG Instagram 的精選貼文
- 關於nslog 在 龍顥中-ZJY®日京頁影像設計 Instagram 的最讚貼文
- 關於nslog 在 Charles Mok 莫乃光 Facebook 的最讚貼文
- 關於nslog 在 紀老師程式教學網 Facebook 的精選貼文
- 關於nslog 在 紀老師程式教學網 Facebook 的精選貼文
- 關於nslog 在 コバにゃんチャンネル Youtube 的最佳貼文
- 關於nslog 在 大象中醫 Youtube 的最佳貼文
- 關於nslog 在 大象中醫 Youtube 的最讚貼文
nslog 在 KO_SLANG Instagram 的最佳貼文
2021-06-22 04:50:44
@slogbikeshack SLOG BIKE SHACK 〒060-0053 北海道札幌市中央区南3条東6丁目1 https://slogbikeshack.wixsite.com/slogbikeshack...
nslog 在 KO_SLANG Instagram 的精選貼文
2021-07-15 23:34:01
#repost おはようございます🧴🧴🧴 HAMAドラム教室では、北海道1安全なドラム教室を目指すべく本日も見えない敵と戦っております🧴🧴🧴 本編 HAMAドラム教室 コロナウィルス対策について https://youtu.be/HBsamzxYC3o 用心に越した事はありませんので、アルコ...
nslog 在 龍顥中-ZJY®日京頁影像設計 Instagram 的最讚貼文
2020-05-10 14:51:50
整年的資料庫是可以想見的... 本篇完整版請至: https://www.facebook.com/haojhong . 前兩篇的Vlog請至連結: 1.https://www.facebook.com/haojhong/videos/a.10207178514240675/102102090618...
nslog 在 Charles Mok 莫乃光 Facebook 的最讚貼文
【📌 召喚coding高手sss 💻】
話說有人用Objective-C Format寫左呢段code,你又會點寫?
int itVoteYouHave=1;
if (date(voterRegistration)>20160502) {
itVoteYouHave=0;
} else {
itVoteYouHave=1;
NSLog(@“You can vote in IT Functional Constituency in Sep 2016”);
}
// Please check IT Voter registration info kit: bit.ly/VOTEIT
☑ 記得5月2號前,上 bit.ly/VOTEIT 睇下點登記做IT界選民!☑
#IT選民登記 #五月二日截止 #最後兩星期 #IT人 #香港人 #你有一票
nslog 在 紀老師程式教學網 Facebook 的精選貼文
[學員來信回覆] 『饕客』與『漁夫』
以下是那位先前我說過,這一期 iPhone / iPad 程式設計班用功到我立正致敬的學員,昨天問我的問題。今早抽空回覆他後,覺得裡面有些程式抓錯(Debug)邏輯與技巧,很值得分享給大家知道,所以就貼上來了。如果您沒學過 iPhone / iPad 程式設計,對於原始碼說明那部分可以無視跳過去,但前頭的「除錯邏輯」麻煩您看一看,應該會有幫助。下次發生「某功能跑不出來」,就不會只是像無敵風火輪裡的天竺鼠一般,「怎麼辦怎麼辦」地窮轉而徒勞無功了。
什麼?你問我這跟『饕客』與『漁夫』有什麼關係?哈哈哈!你看完就知道了。
----------------
[學員來信部分]
Hi,老師
秀不出來,是if的判斷式有錯?
(紀老師:是的,以下就沒了,就像你跟醫師說完「我咳嗽」,其它問題都回答「不知道」是一樣的)
[紀老師回信部分]
您好:
其實寫程式的「抓錯(Debug)」跟醫師診斷病因有異曲同工之妙。病人跟你說:「我咳嗽」,你就得靠經驗用「消去法」,刪除不可能的病因,直到只剩一條病因、並驗證就是這條病因導致為止。
同樣的,您說「秀不出來」,這可以分為幾個可能「病因」去檢查:
(1) 根本沒有觸發該函數(也就是說,沒有綁定)。
(2) 觸發該函數了,可是沒執行我們想要它執行的程式碼。
(3) 觸發該函數,我們想要它執行的程式碼也執行了,但是因為程式邏輯可能有誤,導致執行結果一片空白,變成「秀不出來」。
以上的「思維」,對於將來「XXX 功能『跑不出來』」這種情況一體適用。所以,上面的幾條「斷診邏輯」,麻煩您要絕對緊記在心。下次就不會只是兩手一攤說「秀不出來」,而是「我的函數有觸發,程式碼也執行了,但就是秀不出來。老師可以幫我看看我的程式邏輯哪裡有錯誤嗎?」對我來說,後者問問題的「段數」,比前者高了很多(以上我嘗試著把你從吃魚的「饕客」,變成抓魚的「漁夫」)。
如果想要檢查出 (1) 與 (2) 很簡單,只要多加兩個 NSLog() 就可以了。如下所示:
-(void) show:(UIButton *) sender
{
NSLog(@"Enter (void) show"); // 第一個 NSLog()
if ([btnShow.titleLabel isEqual: @"Show"]) {
NSLog(@"Enter if-statement"); // 第二個 NSLog()
lblShow = [[UILabel alloc]initWithFrame:CGRectMake(120,200,100,20)];
lblShow.text = @"Hello World!";
lblShow.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:lblShow];
[btnShow setTitle:@"Hide" forState:UIControlStateNormal];
}
}
我執行後發現,第一個 NSLog 有執行,但第二個 NSLog 沒執行。所以,函數有觸發,(1) 號病因不成立。(2) 號病因成立。
明明 btnShow 上面的 Title Label 就是 Show 啊?為什麼 if 會不成立,導致 (2) 號病因成立呢?這時你就有能力把眼睛「完全聚焦」在 if (…) 那一段,解開後,整個問題就解開了。仔細看後發現,你的屬性用錯了。 btnShow.titleLabel 的型別是 UIButton,而 UIButton 的 isEqual,根據使用說明書提示,是判斷該 UIButton 的「識別字(Identifier)」是否為 @"Show",而不是 UIButton 上的表面文字是否為 @"Show"。所以,程式碼應該寫成:
-(void) show:(UIButton *) sender
{
NSLog(@"Enter (void) show");
if ([btnShow.titleLabel.text isEqualToString: @"Show"]) {
NSLog(@"Enter if-statement");
lblShow = [[UILabel alloc]initWithFrame:CGRectMake(120,200,100,20)];
lblShow.text = @"Hello World!";
lblShow.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:lblShow];
[btnShow setTitle:@"Hide" forState:UIControlStateNormal];
}
}
您應該比對的是 titleLabel 的 .text,不是 titleLabel 本身。
至於按下「Hide」按鈕後,怎麼讓原來的字不見,您就得多加個 else 或 else if 了。在 else { … } 內先把 lblShow 隱藏,然後把 btnShow 的 title 改回 @"Show"。這個就留給你自己補上了。
雖然我只花了 5 秒就知道問題在哪裡(因為這種錯我也常犯,習慣了),但是我願意花 20 分鐘打這些字,希望你將來能變成「5 秒就知道問題在哪裡」的人,哪天也可以很驕傲地教別人如何 Debug。這是我最大的期望。
-----------------------------------
紀俊男(Robert Chi)
nslog 在 紀老師程式教學網 Facebook 的精選貼文
[iOS Programming] 什麼是 Key-Value Coding?
剛剛收到班上同學的來信,說他在網路上看到一個名詞,叫 Key-Value Coding。問我什麼是 Key-Value Coding。由於這個主題比較冷僻,用到的機會也不能算多。在只有 48 小時得把所有 iOS SDK 教完的壓力下,這個主題被我捨棄了。沒想到同學們還是很用功啊!看來我不講是不行的了(所以說,出來混,一定要還的...)。
先做個定義吧:「Key-Value Coding 就是一種可以用『字串』,來存取物件內某個『屬性欄位』的技巧」。
假設你有一個類別叫做「People」,裡面有兩個屬性欄位「name」與「addr」定義如下:
@interface People : NSObject
{
NSString *name;
NSString *addr;
}
@property NSString *name;
@property NSString *addr;
@end
然後你用 People 宣告了一個名為 robert 的物件,並指定初值給它。如下所示:
People *robert = [[People alloc] init];
robert.name = @"Robert";
robert.addr = @"台北市忠孝東路 1 號";
若你要存取「name」與「addr」屬性,你得這麼寫:
NSLog(@"%@", robert.name); // 印出 robert 物件 name 屬性內容 --> "Robert"
NSLog(@"%@", robert.addr); // 印出 robert 物件 addr 屬性內容 --> "台北市忠孝東路..."
使用 Key-Value Coding,你可以這麼存取屬性值:
NSLog(@"%@", [robert valueForKey:@"name"]); // 存取到 robert 內的 name 欄位。
你有沒有注意到,欄位名稱「name」被字串化了!也就是說,只要你把 "name" 改為 "addr",抓到的欄位值就是 robert.addr 的了。
這有什麼好處呢?舉例來說,你製作了一個資料庫 App,有個下拉式清單,列出所有可以讓使用者選擇的欄位名稱。如「姓名」、「住址」...。使用者只要選擇了一個欄位,如:住址,就可以印出當前物件內,住址那一欄。如果你先把「姓名」與對應的欄位名稱「name」、以及「住址」與對應的欄位名稱「addr」…以「鍵值對(Key-Value Pair)」的方式存放好:
Key Value
------------
姓名 name
住址 addr
...
在 Objective-C 內,鍵值對是用 NSDictionary 類別存放的:
NSArray *keys = [[NSArray alloc] initWithObjects: @"姓名", @"住址", …nil];
NSArray *values = [[NSArray alloc] initWithObjects: @"name", @"addr", … nil];
NSDictionary *dic = [[NSDictionary alloc] initWithObjecs:values forKeys:keys];
則 Key 可以拿去當下拉式功能表要顯示的內容。當使用者選擇了其中一項,如:「姓名」,我就可以拿回到「鍵值對」的物件,查到它對應的值是「"name"」。接著,我就可以用所謂的「Key-Value Coding」這招,抓出當前物件姓名欄位的值:
NSLog(@"%@", [robert valueForKey: theValue]); // theValue 代表由「鍵值對」中查到的值「"name"」。
若使用者選擇的是「住址」,則 theValue 會被填入「"addr"」,上述程式碼不用改一個字,照常抓出 robert 物件內住址欄位的值。
您看出「Key-Value Coding」的價值了嗎?萬一 People 類別內有上百個欄位,我要印出特定欄位的值,都是用下列這一道就解決了:
NSLog(@"%@", [robert valueForKey:@"name"]);
不用 Key-Value Coding、把物件的屬性欄位「字串化」的話,想存取特定欄位,你一定得寫一堆 if ~ else:
if (選中的欄位 == 「姓名」)
fieldToBePrinted = robert.name;
else if (選中的欄位 == 「住址」)
fieldToBePrinted = robert.addr;
else
…
這樣,大家知道 Objective-C 內的 Key-Value Coding 是什麼意思了嗎?