Сегодня я столкнулся с довольно странной проблемой.
У меня есть этот статический метод (часть только что созданного исходного файла CommonUtilities, который собирает все мелкие общие методы, к которым я хотел бы получить доступ в любом месте моего кода, как я обычно это делаю ...)
Я просто хочу преобразовать число в его научную ценность, используя международную систему обозначений (k, M, G и т. Д.)
Вот код:
+ (NSString*)scientificFormatedStringForValue:(NSNumber*)value andUnits:(NSString*)_units
{
NSMutableString* retStr = [NSMutableString string];
long long longValue = [value longLongValue];
if (longValue > 1000000000)
{
[retStr appendFormat:@"%d Md%@", longValue / 1000000000, _units];
}
else if (longValue > 1000000)
{
[retStr appendFormat:@"%d M%@", longValue / 1000000, _units];
}
else if (longValue > 1000)
{
[retStr appendFormat:@"%d k%@", longValue / 1000, _units];
}
else
{
[retStr appendFormat:@"%d %@", longValue, _units];
}
return retStr;
}
Это довольно легко, верно?
Хорошо, вот сделка: _units
не конвертируется должным образом.
В моем примере я использую это:
[CommonUtilities scientificFormatedStringForValue:[NSNumber numberWithLongLong:longValue] andUnits:@"€"];
Я получаю (null)
как _units
для форматированной строки. Если я напечатаю значение _units
, это точка. Итак, чтобы попытаться отладить это, я просто заменил:
[retStr appendFormat:@"%d M%@", longValue / 1000000, _units];
с
[retStr appendFormat:@"%d M%@", longValue / 1000000, @"€"];
Все еще не работает. Он попытался передать один символ (думая, что, возможно, € нужно конвертировать в какой-то материал UTF8 или что-то в этом роде. Поэтому я изменил вызывающий метод на:
[CommonUtilities scientificFormatedStringForValue:[NSNumber numberWithLongLong:longValue] andUnits:@"e"];
Все еще дерьмовые вещи. Я даже изменил @ "€" на [NSString stringWithString: @ "€"], но результат все тот же! Я не могу понять, что здесь не так, я застрял.
Я подумал о проблеме в кодировке исходного файла, поэтому я удалил ее и создал заново, но проблема все та же ...
Если у кого-нибудь есть хоть малейшая подсказка, это было бы очень полезно. Спасибо, ребята ...