[問題] category的使用
大家好,最近在看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
10/14 00:31, 1F
→
10/14 00:31, , 2F
10/14 00:31, 2F
是我打錯了 XD 謝謝指正
※ 編輯: xareelee 來自: 163.13.42.121 (10/14 00:46)
討論串 (同標題文章)
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章