开发者

Objective C: Function help

开发者 https://www.devze.com 2023-02-10 17:48 出处:网络
Greetings, I have the following function: -(NSString*) nudgePhoneNumber:(NSString*)num{ NSString *nudged=@\"\";

Greetings,

I have the following function:

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

And I'm calling it as follows:

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

But I keep getting an exception: "-[NSCFException nudgePhoneNumber:]: unrecognized selector sent to instance" and "Terminating app due to uncaught exception 'NSInvalidArgumentException'"

I'm quite new to Objective-C and think I just need someone to have a quick look开发者_如何学JAVA-over.

Many thanks in advance,


In which class is your method -(NSString*) nudgePhoneNumber:(NSString*)num being declared and implemented?

You're creating an NSString object on the line NSString *result=@""; and then you're trying to call the method using the NSString object. As NSString doesn't have a method called nudgePhoneNumber: you're getting an unrecognized selector runtime error (this exception is thrown when a message is sent to an object that doesn't respond to that message (key terminology there).

I suggest you take another look at how you "call methods" (really you're "sending a message") in Objective-C.


if both nudgePhoneNumber: and phoneNumberUp: are defined in the same class, then phoneNumberUp: should be more like this:

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

also, I think the nudgePhoneNumber: method isn't really doing anything. You might have to do it more like this:

-(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;
}
0

精彩评论

暂无评论...
验证码 换一张
取 消