ここで単純なものが欠けているに違いありません。とにかく、私は通常の関数を作ることから始めましたが、
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];
その試みで、2 つのエラーが発生しました。
そこで、インスタンスメソッドで再試行しました。+ を - に変更し、代わりにメソッドを呼び出しました
NSDecimalNumber *output;
[output aa:string1];
これにより、2 番目のエラーは修正されましたが、最初のエラーは修正されませんでした。@interface のメソッドを認識しない理由がわかりません。また、私が変更を試みたのはこれらだけではありませんでした。メソッドを呼び出す方法を複数試してみましたが、何もうまくいかないようです。何か案は?