Objective c 目标C iOS开发中的数学方程

Objective c 目标C iOS开发中的数学方程,objective-c,ios,ios5,Objective C,Ios,Ios5,我正在尝试开发一个入门应用程序,只是为了适应Xcode和iOS开发的一些实用程序。我试图创建一个应用程序,将解决二次方程。我尝试在“计算”按钮操作下添加此代码。首先,我要“计算”,将三个输入相加。现在我想让它解这个方程。这就是我到目前为止所说的 -(IBAction) Calculate { float x = ([A.text floatValue]); float y = ([B.text floatValue]); float z = ([C.text floatValue]);

我正在尝试开发一个入门应用程序,只是为了适应Xcode和iOS开发的一些实用程序。我试图创建一个应用程序,将解决二次方程。我尝试在“计算”按钮操作下添加此代码。首先,我要“计算”,将三个输入相加。现在我想让它解这个方程。这就是我到目前为止所说的

-(IBAction) Calculate {

float x = ([A.text floatValue]);  
float y = ([B.text floatValue]);
float z = ([C.text floatValue]);

total.text =[NSString alloc]initWithFormat:@"%.2f", -y+sqrtf(y*y-4*x*z)/2*x;

}

我知道这不是完整的等式,但这是我到目前为止得到的。我收到的错误是在分号所在的位置添加了一个括号。如何使这更有效?我想创建一个
solveEquation()
函数,但遇到了问题。我能做什么?

你需要更多的支架

total.text = [[NSString alloc]initWithFormat:@"%.2f", -y+sqrtf(y*y-4*x*z)/2*x];
括号表示您正在发送Objective-C消息。您发送的每封邮件都需要一对括号。让我们这样分解:

NSString *uninitializedString = [NSString alloc];
NSString *initializedString = [uninitializedString initWithFormat:@"%.2f", x+y+z];
total.text = initializedString;
在第一行中,我们将
alloc
消息发送到
NSString
对象,它实际上是一个类对象,知道如何分配
NSString
的实例。但它不会初始化实例。它几乎只是为它们分配内存

在第二行中,我们向这个已分配但未初始化的
NSString
实例发送一条消息,告诉它通过格式化模板
%.2f
来初始化自身。此消息返回
NSString
的初始化实例

最后,在第三行中,我们使用
NSString
的初始化实例

显然,总是需要一个中间变量来保存一个已分配但未初始化的对象是很乏味的。因此,我们通过获取第一条消息的结果并直接向其发送消息来消除它:

total.text = [[NSString alloc] initWithFormat:@"%.2f", x+y+z];

你需要更多的支架

total.text = [[NSString alloc]initWithFormat:@"%.2f", -y+sqrtf(y*y-4*x*z)/2*x];
括号表示您正在发送Objective-C消息。您发送的每封邮件都需要一对括号。让我们这样分解:

NSString *uninitializedString = [NSString alloc];
NSString *initializedString = [uninitializedString initWithFormat:@"%.2f", x+y+z];
total.text = initializedString;
在第一行中,我们将
alloc
消息发送到
NSString
对象,它实际上是一个类对象,知道如何分配
NSString
的实例。但它不会初始化实例。它几乎只是为它们分配内存

在第二行中,我们向这个已分配但未初始化的
NSString
实例发送一条消息,告诉它通过格式化模板
%.2f
来初始化自身。此消息返回
NSString
的初始化实例

最后,在第三行中,我们使用
NSString
的初始化实例

显然,总是需要一个中间变量来保存一个已分配但未初始化的对象是很乏味的。因此,我们通过获取第一条消息的结果并直接向其发送消息来消除它:

total.text = [[NSString alloc] initWithFormat:@"%.2f", x+y+z];

你需要更多的括号。正确的语法是
[object message]
,由于
[NSString alloc]
返回一个对象,因此需要
[[NSString alloc]initWithFormat:@“%.2f”、-y+sqrtf(y*y-4*x*z)/2*x]
initWithFormat:
作为另一条消息)。

需要更多的括号。正确的语法是
[object message]
,由于
[NSString alloc]
返回一个对象,您需要
[[NSString alloc]initWithFormat:@“%.2f”、-y+sqrtf(y*y-4*x*z)/2*x]
initWithFormat:
是另一条消息)。

我还要补充一点,这样的错误在格式更简单的字符串中更容易看到。您可以考虑将变量设置为<代码> -y+SQL RTF(y*y-4*x*z)/2×x/c> >然后使用<代码> iNIT.Field:,以便您可以稍微简单地分析一下。非常感谢。你会帮我的。我感谢大家的专业知识!!我还要补充一点,使用更简单的格式字符串更容易看到这样的错误。您可以考虑将变量设置为<代码> -y+SQL RTF(y*y-4*x*z)/2×x/c> >然后使用<代码> iNIT.Field:,以便您可以稍微简单地分析一下。非常感谢。你会帮我的。我感谢大家的专业知识!!还有,注意你的二次方程。还有,注意你的二次方程。