Есть что-то, чего я не понимаю в свойствах и управлении памятью с iOS!
В моем AppDelegate
я хочу свойство NSString *
:
Один из моих методов использует свойство, подобное этому:
myString = [notificationDictionary objectForKey:@"myKey"];
(notificationDictionary
- NSDictionary*
, полученное в application:didFinishLaunchingWithOptions:
s launchOptions
словарь с ключом UIApplicationLaunchOptionsRemoteNotificationKey
)
Я думаю, это означает, что у моего AppDelegate
есть собственная копия myString
с счетом сохранения 1, верно?
Затем другой метод пытается получить доступ к свойству, но я получаю исключение EXC_BAD_ACCESS
.
Чтобы быть на 100% уверенным в происходящем, я много раз сохранял свое свойство и отображал значениеего счет сохранения при каждом доступе: счет хранения уменьшается где-то между методом, в котором я присваиваю значение своему свойству, и методом, в котором я его читаю.
Какой объект отправил метод release в мою строку?