Я доберусь до этого быстро: у меня есть приложение для iPhone OS 3.1.2, которое уменьшит дроби. У меня есть 4 магазина:
- oTop и oBottom: два поля UIText, обозначают originalTop и originalBottom.
- rTop и rBottom: две метки UIL, обозначают уменьшенную вершину и уменьшенную нижнюю.
Вот код, который я использую:
- (IBAction) уменьшить {
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
EDIT: изменен 1-й и 3-й циклы для (int i = 0 до (int i = 1.