Необходимо быть в состоянии получить объект StackTrace вместо строки путем высказывания
var trace = new System.Diagnostics.StackTrace(exception);
, можно тогда посмотреть на кадры сами, не полагаясь на форматирование платформы.
См. также: ссылка StackTrace
Как всегда со ссылочными типами, есть два понятия «копия». Я уверен, что вы их знаете, но для полноты картины.
Вам нужен последний. Если это один из ваших собственных объектов, вам нужно просто принять протокол NSCopying и реализовать зону (id) copyWithZone: (NSZone *). Вы можете делать все, что хотите; хотя идея состоит в том, чтобы сделать настоящую копию себя и вернуть ее. Вы вызываете copyWithZone во всех своих полях, чтобы сделать глубокую копию. Простой пример:
@interface YourClass : NSObject <NSCopying>
{
SomeOtherObject *obj;
}
// In the implementation
-(id)copyWithZone:(NSZone *)zone
{
// We'll ignore the zone for now
YourClass *another = [[YourClass alloc] init];
another.obj = [obj copyWithZone: zone];
return another;
}