Исходя из Java и Python, я не очень хорошо разбираюсь в управлении памятью, но есть ли способ узнать, какой тип объекта находится по определенному адресу памяти?
Я спрашиваю, потому что мое приложение завершилось загадочным сообщением, которое гласит:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSDecimalNumber encodedURLParameterString]: unrecognized selector sent to instance 0x164840'
и хочет получить некоторые подсказки о том, что идет не так.
И если это невозможно, некоторые методы отладки для таких сообщений об ошибках будут с благодарностью.
Заранее спасибо !!
РЕДАКТИРОВАТЬ: Follow-Up Concern (MOVED ЗДЕСЬ )
После некоторого исследования фреймворка, который я использовал, я обнаружил нечтоЯ не очень понимаю.
Если у меня есть метод
- (void) myMethod:(NSString *)string {
[Object anothermethodWithString:string];
}
и я звоню
[Object myMethod:@"this is a string"];
Нужно ли мне делать что-то вроде
NSString *string2 = [[NSString alloc] initWithFormat:@"%@", string];
[Object anothermethodWithString:string2];
[string2 release];
вместокак у меня был мой метод раньше?Кажется, что строка, которую я передал через параметр моего метода, была выпущена где-то, и это решает мою проблему.Наверное, я не совсем понимаю, что именно @ "string" делает с точки зрения памяти.Это как автоматически выпущенный NSString?