作者xareelee (XareeLee)
看板MacDev
标题[问题] category的使用
时间Tue Oct 13 23:37:54 2009
大家好,最近在看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)
1F:→ uranusjr:一直觉得哪里怪, 终於发现了, 柳丁书明明就叫 Beginning 10/14 00:31
2F:→ uranusjr:iPhone Development 才对... 10/14 00:31
是我打错了 XD 谢谢指正
※ 编辑: xareelee 来自: 163.13.42.121 (10/14 00:46)