我正在通过Stephan Kochan关于Objective C的一本书,我想到了一个希望有人可以帮忙的问题。编程新手,想要一些关于我的Objective C代码的指针
这里的,我一直在努力从分数类我的打印方法:
-(void) print: (BOOL) reduce {
Fraction *resultReduced = [[Fraction alloc] init];
[resultReduced setTo:numerator over:denominator];
if (denominator < 0) {
numerator = -numerator;
denominator = -denominator;
}
if (reduce) {
[resultReduced reduce];
if (resultReduced.denominator < 0) {
resultReduced.denominator = -resultReduced.denominator;
resultReduced.numerator = -resultReduced.numerator;
}
else if (resultReduced.denominator == 1)
NSLog (@"%i", resultReduced.numerator);
else if (resultReduced.numerator == 0)
NSLog (@"0");
else if (resultReduced.numerator == resultReduced.denominator)
NSLog (@"1");
else if (resultReduced.numerator > resultReduced.denominator || resultReduced.numerator < 0) {
[resultReduced improper];
if (resultReduced.whole == 0)
NSLog (@"%i/%i", resultReduced.numerator, resultReduced.denominator);
else if (resultReduced.whole < 0 && resultReduced.numerator < 0) {
resultReduced.numerator = -resultReduced.numerator;
NSLog (@"%i %i/%i", resultReduced.whole, resultReduced.numerator, resultReduced.denominator);
}
else
NSLog (@"%i %i/%i", resultReduced.whole, resultReduced.numerator, resultReduced.denominator);
}
else
NSLog (@"%i/%i", resultReduced.numerator, resultReduced.denominator);
}
else
NSLog (@"%i/%i", numerator, denominator);
}
的问题是,如果我从2/3减去15/4我得到-37/12我想显示为-3 1/12使用此消息[resultReduced不当],但它似乎不工作。只是,如果然后它如果我改变
else if (resultReduced.numerator > resultReduced.denominator || resultReduced.numerator < 0) {
来。
难道有人请向我解释为什么使用如果作品,但如果别的不?
您应该能够通过在调试器中逐步执行程序来查找问题。 – 2012-02-26 15:48:29
你能解释一下如何做到这一点? – CloudDweller 2012-02-26 15:49:11
[这里有一个链接](https://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/Debugging/Debugging.html)到Xcode中的调试文档。 – user1118321 2012-02-26 15:55:24