我必须在这里遗漏一些简单的东西。无论如何,我一开始只是制作一个常规函数,
NSDecimalNumber* aa(NSMutableString *string)
{code}
然后我会通过按下这样的按钮来调用它:
- (IBAction)parse:(id)sender {
string1=[NSMutableString stringWithFormat:@"%@", screen.text];
NSDecimalNumber *output=aa(string1);}
(screen.text 来自标签)但是,在它的中途,我意识到该函数不能使用我的 viewcontroller.m 类的其余部分中的变量(反之亦然),所以我决定将该函数实现为代替方法。这就是我所做的。首先,我将它添加到 viewcontroller.h,
+ (NSDecimalNumber*) aa:(NSMutableString*) string;
@property (nonatomic, strong) NSDecimalNumber *number; //the number I'm working with
合成了我的属性,将我的函数声明更改为这个,
+ (NSDecimalNumber*) aa:(NSMutableString*) string
并试图这样称呼它,
NSDecimalNumber *output=[[NSDecimalNumber alloc] aa:string1];
通过这种尝试,我得到了两个错误——“没有可见的@interface for 'NSDecimalNumber' 声明了选择器'aa,'”和“在类方法中访问的实例变量'number'”。
所以我再次尝试了一个实例方法。将 +'s 更改为 -'s 并改为使用
NSDecimalNumber *output;
[output aa:string1];
这纠正了第二个错误,但没有纠正第一个错误。我无法弄清楚为什么它无法识别@interface 中的方法。此外,这些并不是我尝试更改的唯一内容——我一直在尝试多种方法来调用该方法,但似乎没有任何效果。有任何想法吗?