В этой статье я хотел бы поделиться кодом, который позволяет легко конвертировать Int в NSMutableArray.
Не знаю, каким извращенцам это нужно, но мне оно пригождалось один раз, поэтому…
Переменная будет раскладываться по каждому символу, учитывая пробелы.
Не знаю, каким извращенцам это нужно, но мне оно пригождалось один раз, поэтому…
Переменная будет раскладываться по каждому символу, учитывая пробелы.
var SecondArray = NSMutableArray()
var numbers = 35231
//Задаем начальную переменную, которую хотим разделить
var CountOfNumbers = count(String(numbers ))
// Получаем кол-во символом в этой переменной.
for var index2 = 0; index2 < CountOfNumbers + 1; ++index2 {
// Запускаем цикл
if SecondArray.count != CountOfNumbers {
// Если переменная не набрала нужного кол-ва символов, то добавляем новые объекты
var LastChar = numbers % 10
//получаем последний символ в переменной
numbers = (numbers - LastChar) / 10
SecondArray.addObject(LastChar)
} else if SecondArray.count == CountOfNumbers {
SecondArray.reverseObjectEnumerator().allObjects
// Получаем массив
}
}
Комментарии (7)
cher11
13.07.2015 00:09+3Обалдеть, и это — на Хабре??
Решение всей задачи уместится в пару строк, не нужно ни переводить в строку, ни считать количество букв в строке.
Приведу код на Objective-C, но смысл совершенной такой же.
int n = 12345; NSMutableArray *result = [[NSMutableArray alloc] init]; while (n) { int digit = n % 10; [result addObject:@(digit)]; n /= 10; } return [[result reverseObjectEnumerator] allObjects];
По вашему коду:
numbers = (numbers — LastChar) / 10
numbers — LastChar делать вообще не нужно, деление же целочисленное
SecondArray.reverseObjectEnumerator().allObjects
тут надо было написать хотя бы так:
SecondArray = SecondArray.reverseObjectEnumerator().allObjects
if в цикле тоже не нужен, реверснуть массив можно после.
Egor3f
13.07.2015 01:20if SecondArray.count != CountOfNumbers {
} else if SecondArray.count == CountOfNumbers {
Напомнило
String pravda = "true"; String loj = "false"; if(var123.ToString().Length == pravda.Length) { ... } else if (var123.ToString().Length == loj.Length) { ... } else { Console.WriteLine("Ошибка"); }
Про стиль кода и именование переменных я лучше промолчу…
1101_debian
А где первый массив?