[問題] category的使用

看板MacDev作者 (XareeLee)時間15年前 (2009/10/13 23:37), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/2 (看更多)
大家好,最近在看Beginning iPhone Development這一本書(書皮是橘子的橫切面照) 我依照第12章的教學進行coding 可是在iPhone simulator上卻發生錯誤 經進一步尋找原因 是在呼叫[UIColor randomColor];時發生錯誤 randomColor這個method是經由新建的category來擴充的class method 目的是要產生一個隨機的顏色 因此欲藉由category方式來讓UIColor有這個功能 在UIColor-Random.h下 #import <UIKit/UIKit.h> @interface UIColor (Random) + (UIColor *) randomColor; @end 在UIColor-Random.m下 #import "UIColor-Random.h" @implementation UIColor (Random) + (UIColor *) randomColor { NSLog(@"2"); static BOOL seeded = NO; if (!seeded){ seeded = YES; srandom(time(NULL)); } CGFloat red = (CGFloat)random()/(CGFloat)RAND_MAX; CGFloat blue = (CGFloat)random()/(CGFloat)RAND_MAX; CGFloat green = (CGFloat)random()/(CGFloat)RAND_MAX; return [UIColor colorWithRed:red green:green blue:blue alpha:1.0f]; } @end 然後在我需要的呼叫[UIColor randomColor];的.m file中 也有#import "UIColor-Random.h" 並在[UIColor randomColor]; 這行之前加入NSLog(@"1"); 這行之後加入NSLog(@"2"); 在程式執行中 Debugger console卻只有印出「1」緊接著印出下面資訊: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[UIColor randomColor]: unrecognized selector sent to class 0x31a5f360' 我對過書上 我應該沒有漏打什麼 還是我有忽略了什麼設定嗎? 理論上這樣呼叫[UIColor randomColor];應該沒有問題吧? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.13.42.121 ※ 編輯: xareelee 來自: 163.13.42.121 (10/13 23:39)

10/14 00:31, , 1F
一直覺得哪裡怪, 終於發現了, 柳丁書明明就叫 Beginning
10/14 00:31, 1F

10/14 00:31, , 2F
iPhone Development 才對...
10/14 00:31, 2F
是我打錯了 XD 謝謝指正 ※ 編輯: xareelee 來自: 163.13.42.121 (10/14 00:46)
文章代碼(AID): #1Ar9xJKG (MacDev)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
文章代碼(AID): #1Ar9xJKG (MacDev)