2013-09-16 47 views
-4

我试图从这个问题再现例如:Objective-C的实现和调用方法

How to create a method in Objective-C that takes a NSString stringWithFormat as a parameter?

而且我在@interface创建:

- (float)strToFloat:(NSString *)str; 

而且在@implementation :

- (float)strToFloat:(NSString *)str { 

    str = [str stringByReplacingOccurrencesOfString:@"." 
             withString:@""]; 
    str = [str stringByReplacingOccurrencesOfString:@"," 
             withString:@"."]; 
    return [str floatValue]; 
} 

毕竟,当我尝试编译应用程序,我收到这个错误:Use of undeclared identifier 'strToFloat'用这种方法:

- (IBAction)addItem:(id)sender { 
    NSLog(@"float value is: %.2f", [strToFloat labelPrice.text]); 
} 

这个例子有什么问题?

+5

你应该回去阅读一个基本的Objective-C教程。 – 2013-09-16 18:25:02

+0

我还在读书,在试图提出这个问题之前,我单独失去了几个小时,现在这个问题已经非常明显 - 但是以新语言开始的人会遇到同样的困难 –

回答

6

你必须调用正确的方法:

NSLog(@"float value is: %.2f", [self strToFloat:labelPrice.text]); 

我假设你的addItem:strToFloat:方法是在同一个班级。

顺便说一句 - 有很多更好的方法来将十进制字符串值转换为处理用户区域设置的数字。利用NSNumberFormatter

+0

就是这样。我是新的Objective-C,这个语法对我来说意义非常明显,谢谢! –