我的方法可能没有回复,我无法理解
ClassA.h中的:
@interface ClassA : NSObject {
NSString *inStr;
NSInteger *peak;
}
@property (retain,nonatomic) NSString *inStr;
@end
ClassA.m中的
NSLog(@"%d peaks",peak);
peak++;
inStr = [NSString stringWithFormat:@"Peaks : %d",peak ];
[ClassB setUpdateLabel:inStr];
ClassB.h中的
@interface ClassB : NSObject {
IBOutlet UILabel *peaksLabel;
NSString *tempStr;
}
@property (nonatomic, retain) UILabel *peaksLabel;
- (void) setUpdateLabel:(NSString*)inStr;
@end
ClassB.m中的
#import ClassB.h
@implementation classB;
-(void) setUpdateLabel:(NSString*)inStr{
peaksLabel.text=inStr;
}
任何人都可以帮助我吗?
答案 0 :(得分:2)
您将- (void) setUpdateLabel:(NSString*)inStr;
声明为实例方法,但是您将其用作类方法。
' - '表示实例方法 '+'表示类方法
如果您希望这项工作正常,您可以将声明更改为+ (void) setUpdateLabel:(NSString*)inStr;
,或者像这样制作B类的对象:
ClassB *obj = [[ClassB alloc] init];
[obj setUpdateLabel:@"Something"];
并记得发布它。
答案 1 :(得分:0)
(void)setUpdateLabel不是类方法。创建classB的实例并将消息发送到此实例。
classB * instance = [[classB alloc] init];
[instance setUpdateLabel:inStr];