У меня проблемы с совместимостью между NSArray и NSMutableArray? - PullRequest
2 голосов
/ 15 июля 2011

У меня проблемы с совместимостью между NSArray и NSMutableArray?-> Несовместимые типы Objective-C, присваивающие "struct NSArray *", ожидаемый "struct NSMutableArray"

NSMutableArray *nsmarrRow;

NSString *nsstrFilePath = [[NSBundle mainBundle] pathForResource: nsstrFilename ofType: nsstrExtension];
NSString *nsstrFileContents = [NSString stringWithContentsOfFile: nsstrFilePath encoding:NSUTF8StringEncoding error: NULL];

//break up file into rows
nsmarrRow = [nsstrFileContents componentsSeparatedByString: nsstrRowParse];//<--Incompatible Objective-C types assigning "struct NSArray *", expected "struct NSMutableArray"

Я попытался сделать "объявление NSString" для "NSMutableString" ... сделал больше проблем.

спасибо

Ответы [ 2 ]

5 голосов
/ 15 июля 2011

Вы не можете получить изменяемый массив, выполнив

nsmarrRow = [nsstrFileContents componentsSeparatedByString: nsstrRowParse];

Вам потребуется,

nsmarrRow = [NSMutableArray arrayWithArray:[nsstrFileContents componentsSeparatedByString: nsstrRowParse]];

Изменение NSString на NSMutableString не даст вамNSMutableArray объект.Вы получите объект NSArray, как и в случае NSString.Вы должны будете использовать это, чтобы получить NSMutableArray, используя вышеуказанный метод.

2 голосов
/ 15 июля 2011

Метод componentsSeparatedByString возвращает NSArray.Попробуйте следующее:

[NSMutableArray arrayWithArray:[nsstrFileContents componentsSeparatedByString: nsstrRowParse]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...