В этой статье я хотел бы поделиться кодом, который позволяет легко конвертировать 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)


  1. 1101_debian
    12.07.2015 19:20

    А где первый массив?


  1. brevis
    12.07.2015 19:40

    Как будто статья про PHP, но нет, Swift.


  1. PapaBubaDiop
    12.07.2015 20:06

    По-моему, ужасны и постановка задачи, и решение.


  1. 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 в цикле тоже не нужен, реверснуть массив можно после.


    1. rafuck
      13.07.2015 12:21

      При n == 0 будет пусто ,)
      Ну и с отрицательным n тоже ерунда.


  1. Egor3f
    13.07.2015 01:20

    if 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("Ошибка"); }
    


    Про стиль кода и именование переменных я лучше промолчу…


  1. stack_trace
    13.07.2015 09:26
    +1

    Жесть какая. Не делайте так больше.