我在 中创建了一个方法ClassA
并想在ClassB.m
.
在ClassA.h
我有这个:
@interface ClassA : NSObject <NSCoding>
...
+ (NSInteger) methodA:(CGPoint)touchPoint;
...
@end
我ClassA.m
已经宣布methodA
:
+ (NSInteger)methodA:(CGPoint)touchPoint
{
// return an integer based on touchPoint's value
}
并在ClassB.m
:
#import "ClassA.h"
...
-(void)methodThatCallsMethodA
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self];
NSInteger integerUsingClassA = [ClassA methodA:touchPoint];
// do some stuff
}
我有一种感觉,问题在于我如何调用该方法,而现在的对象ClassA
是错误的,但我不确定。错误是unrecognized selector sent to class ...
。请记住,如果我创建一个与 inside 相同的方法,methodA
我ClassB.m
可以像调用methodThatCallsMethodA
对象一样调用它self
,没有问题。
~~~~~~~~~~~
我也试过这个ClassB.h
:
#import "ClassA.h"
@interface...
@property(nonatomic, retain)ClassA *objectOfClassA;
...
@end
并改变ClassB.m
:
#import "ClassA.h"
@synthesize objectOfClassA;
- (void)methodThatCallsMethodA
{
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self];
if(!self.objectOfClassA)
self.objectOfClassA = [[ClassA alloc] init];
NSInteger integerUsingClassA = [self.objectOfClassA methodA:touchPoint];
NSLog(@"ClassA: %i", integerUsingClassA);
}
但现在它警告说instance method -methodA not found
。