−107
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
int sortingFunctionForType2(SomeEntity *item1, SomeEntity *item2, void *context)
{
NSString *str1 = nil;
NSString *str2 = nil;
if ([[item1 version] intValue] >= 10)
{
str1 = [NSString stringWithFormat:@"9%@", [item1 version]];
}
else
{
str1 = [NSString stringWithFormat:@"%@", [item1 version]];
}
if ([[item2 version] intValue] >= 10)
{
str2 = [NSString stringWithFormat:@"9%@", [item2 version]];
}
else
{
str2 = [NSString stringWithFormat:@"%@", [item2 version]];
}
return [str1 compare:str2];
}
Пояснение. Парсится XMLка, строится объект SomeEntity, у него есть свойство NSString *version, которое, однако, всегда имеет вид @"1", @"2", ... @"20" и так далее.
То есть, вначале горе-программисту было впадлу при строительстве объекта делать setVersion: [[attributeDict objectForKey: @"version"] intValue];
Затем возникла задача - сравнить эти числовые значения. Но система упорно считает, что @"10" < @"9".
Поэтому была изобретена такая портянка.
Что этот человек в программировании забыл - сказать не могу.
Запостил: QuickNick,
19 Мая 2012
krypt 19.05.2012 21:36 # −3
Аффтар - как всегда тот, кого нельзя называть?
JavaGovno 19.05.2012 21:39 # 0
krypt 19.05.2012 22:06 # 0
QuickNick 21.05.2012 09:19 # 0
krypt 21.05.2012 09:46 # +1
krypt 19.05.2012 21:38 # 0
kipar 21.05.2012 14:15 # −4
guest 22.05.2012 20:26 # +2
"Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live."
krypt 04.06.2013 12:00 # 0