String s1 = "Старая строка";
//s1 variable, refers to string in memory
reference | MEMORY |
variables | |
[s1] --------------->| "Old String" |
Строка s2 = s1;
//s2 refers to same string as s1
| |
[s1] --------------->| "Old String" |
[s2] ------------------------^
s1 = "Новая строка";
//s1 deletes reference to old string and points to the newly created one
[s1] -----|--------->| "New String" |
| | |
|~~~~~~~~~X| "Old String" |
[s2] ------------------------^
Исходная строка «в памяти» не изменилась, но переменная-ссылка была изменена таким образом, чтобы она ссылалась на новую строку. И если бы у нас не было s2, «Старая строка» все равно была бы в памяти, но у нас не было бы доступа к ней ...
Вы получите объект NSNotification, а не NSDictionary в обратном вызове уведомления.
Попробуйте следующее:
- (void) processit: (NSNotification *)note {
NSString *test = [[note userInfo] valueForKey:@"l"];
NSLog(@"output is %@", test);
}