+方法可能无法响应

时间:2011-07-19 09:12:31

标签: objective-c class

我的方法可能没有回复,我无法理解

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;

}

任何人都可以帮助我吗?

2 个答案:

答案 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];