[英]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.