2011-02-16 17 views
0

挨拶、目的C:関数のヘルプ

私は、次の機能があります。

-(NSString*) nudgePhoneNumber:(NSString*)num{ 
    NSString *[email protected]""; 
    [nudged stringByReplacingOccurrencesOfString:@"+" withString:@""]; 
    [nudged stringByReplacingOccurrencesOfString:@"\\s" withString:@""]; 
    [nudged stringByReplacingOccurrencesOfString:@"-" withString:@""]; 
    [nudged stringByReplacingOccurrencesOfString:@"." withString:@""]; 
    [nudged stringByReplacingOccurrencesOfString:@"/" withString:@""]; 
    //NSLog(nudged); 
    return nudged; 
} 

を、次のように私はそれを呼んでいる:

-(IBAction) phoneNumberUp:(id)sender{ 
    NSString *mob=phoneNumber.text; 
    NSString *[email protected]""; 
    [result nudgePhoneNumber:mob]; 
     ... 
} 

をしかし、私は例外を取得しておいてください。 " - [NSCFException nudgePhoneNumber:]:インスタンスに送信された認識できないセレクタ"および "キャッチされない例外 'NSInvalidArgumentException'のためにアプリケーションを終了する"

私はObjective-Cにはかなり新しく、ちょっとした見回しが必要な人がいると思います。あなたの方法は-(NSString*) nudgePhoneNumber:(NSString*)num宣言され、実施されている

答えて

1

nudgePhoneNumber:phoneNumberUp:の両方が同じクラスで定義されている場合は、phoneNumberUp:べき次のようになります。

-(IBAction) phoneNumberUp:(id)sender{ 
    NSString *mob=phoneNumber.text; 
    NSString *result=nil; 
    result = [self nudgePhoneNumber:mob]; 
    ... 
} 

また、私はnudgePhoneNumber:メソッドは本当に何もしていないと思う。このようにする必要があります:

-(NSString*) nudgePhoneNumber:(NSString*)num{ 
    NSString *nudged = num; 
    nudged = [nudged stringByReplacingOccurrencesOfString:@"+" withString:@""]; 
    nudged = [nudged stringByReplacingOccurrencesOfString:@"\\s" withString:@""]; 
    nudged = [nudged stringByReplacingOccurrencesOfString:@"-" withString:@""]; 
    nudged = [nudged stringByReplacingOccurrencesOfString:@"." withString:@""]; 
    nudged = [nudged stringByReplacingOccurrencesOfString:@"/" withString:@""]; 
    //NSLog(nudged); 
    return nudged; 
} 
2

どのクラスでは、事前に

多くのおかげで、?

NSString *[email protected]"";行にNSStringオブジェクトを作成していて、NSStringオブジェクトを使用してメソッドを呼び出そうとしています。 NSStringにnudgePhoneNumber:というメソッドがないため、認識できないセレクタのランタイムエラーが発生しています(この例外は、メッセージがそのメッセージに応答しないオブジェクトに送信されたときにスローされます)。(重要な用語)

私はあなたがObjective-Cでどのように「呼び出し方法」(本当にあなたが「メッセージを送信」し​​ている)で、別の見てみましょうお勧めします。

+0

このメソッドは同じクラスにあります。私は '自己'を使うべきですか? – Eamorr

+0

'NSMutableString'ではなく' NSString'で 'stringByReplacingOccurencesOfString'を使う問題もあります – Abizern

+0

メソッドが同じクラスにある場合は、キーワード" self "を使用します! :) –

関連する問題