これについては簡単に説明します。分数を減らすiPhoneOS3.1.2用のアプリケーションがあります。私は4つのアウトレットを持っています:
- oTopとoBottom:2つのUITextFieldsは、originalTopとoriginalBottomを表します。
- rTopとrBottom:2つのUILabelは、reducedTopとreducedBottomを表します。
私が使用するコードは次のとおりです。
-(IBAction)reduce {
int numerator = [[oTop text] intValue];
int denominator = [[oBottom text] intValue];
if (denominator > 0) {
NSMutableArray *factors1 = [[NSMutableArray alloc] init];
NSMutableArray *factors2 = [[NSMutableArray alloc] init];
int factors1length;
int factors2length;
for (int i = 1; i < ceil(sqrt(numerator)); i ++) {
[factors1 addObject:[NSString stringWithFormat:@"%@", i]];
if (round(numerator / i) != numerator / i) {
[factors1 removeLastObject];
} else {
factors1length ++;
}
}
for (int i = factors1length; i <= 0; i --) {
[factors1 addObject:[NSString stringWithFormat:@"%@", (numerator / [[factors1 objectAtIndex:i] intValue])]];
} //End get numerator factors
for (int i = 1; i < ceil(sqrt(denominator)); i ++) {
[factors2 addObject:[NSString stringWithFormat:@"%@", i]];
if (round(denominator / i) != denominator / i) {
[factors2 removeLastObject];
} else {
factors2length ++;
}
}
for (int i = factors2length; i <= 0; i --) {
[factors2 addObject:[NSString stringWithFormat:@"%@", (denominator / [[factors2 objectAtIndex:i] intValue])]];
} //End get denominator factors
}
}
迷線でごめんなさい。とにかく、誰かが何が起こっているのか教えてもらえますか?起動し、両方のテキストフィールドに0より大きい数字を入力し、[縮小]ボタンを押すと、アプリがクラッシュします。助けてください、
HiGuy
編集:1番目と3番目のforループを(int i = 0から(int i = 1)に変更しました。