NSArray *array = mutableArray;
Этот [mutableArray copy]
антипаттерн есть во всем примере кода. Прекратите это делать для одноразовых изменяемых массивов, которые являются временными и освобождаются в конце текущей области.
Нет способа, которым среда выполнения могла бы оптимизировать расточительное копирование изменяемого массива, который вот-вот выйдет из области видимости, уменьшится до 0 и будет освобожден навсегда.
Я не знаю способа проверки без исключения, но вы можете изменить настройки отладчика так, чтобы они прерывались только для XmlException
если он не обработан - это должно решить ваши непосредственные проблемы, даже если код все еще неэлегантен.
Для этого перейдите в Debug / Exceptions ... / Common Language Runtime Exceptions и найдите System.Xml.XmlException,
Это разумный способ сделать это, за исключением того, что IsNullOrEmpty является избыточным (LoadXml прекрасно это понимает) . Если вы все же сохраняете IsNullOrEmpty, сделайте if (! String.IsNullOrEmpty (value)).
Однако в основном проблема заключается в отладчике, а не в коде.