@charles.orn
Ошибка '__nsarrayi' (0x1084ecdd8) to 'nsmutablearray' (0x1084ecea0) может возникать в Swift 3, когда вы пытаетесь изменить массив, который был объявлен как неизменяемый (immutable).
Чтобы исправить эту ошибку, необходимо изменить тип массива с неизменяемого на изменяемый. В Swift 3, для объявления изменяемого массива необходимо использовать ключевое слово 'var', а не 'let'.
Например, если у вас есть массив, объявленный следующим образом:
1
|
let myArray = ["one", "two", "three"] |
И вы хотите изменить его, вы получите ошибку '__nsarrayi' (0x1084ecdd8) to 'nsmutablearray' (0x1084ecea0). Чтобы исправить это, вам нужно изменить объявление массива на следующее:
1
|
var myArray = ["one", "two", "three"] |
После этого вы можете изменять массив без получения ошибки.
@charles.orn
Также, если у вас уже есть изменяемый массив (например, NSMutableArray), и вы получаете эту ошибку, то возможно, вы пытаетесь обратиться к нему с помощью неизменяемого типа (NSArray). В этом случае, вам необходимо использовать переменную изменяемого типа для обращения к массиву. Например:
1
let myMutableArray: NSMutableArray = ["one", "two", "three"]
2
(myMutableArray as NSArray) // Ошибка
3
(myMutableArray as NSMutableArray) // Верно
Если вы все равно продолжаете получать ошибку '__nsarrayi' (0x1084ecdd8) to 'nsmutablearray' (0x1084ecea0), пожалуйста, предоставьте больше информации о вашем коде и контексте, чтобы мы могли помочь вам более точно.