簡體   English   中英

目標C:功能幫助

[英]Objective C: Function help

問候,

我有以下功能:

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

我稱它為:

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

但是我不斷收到異常:“-[[NSCFException nudgePhoneNumber:]:無法識別的選擇器發送到實例”和“由於未捕獲的異常'NSInvalidArgumentException'而終止應用程序”

我對Objective-C還是很陌生,認為我只需要一個人就能快速瀏覽一下。

提前謝謝了,

在哪個類中聲明和實現-(NSString*) nudgePhoneNumber:(NSString*)num

您正在NSString *result=@"";行上創建一個NSString對象NSString *result=@""; 然后嘗試使用NSString對象調用該方法。 由於NSString沒有名為nudgePhoneNumber:的方法nudgePhoneNumber:您將收到無法識別的選擇器運行時錯誤(當消息發送到不響應該消息的對象時,將引發此異常(此處的關鍵術語)。

我建議您再看一下在Objective-C中如何“調用方法”(實際上是在“發送消息”)。

如果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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM