Если вы объявите свою переменную my_string в файле .m, другие файлы не смогут ее увидеть (вы импортируете файлы .h, а не .m).Делаете ли вы таймер в одном и том же файле (appdelegate.m)?
Я рекомендую не использовать глобальные переменные, подобные этой, поскольку это часто приводит к путанице в процессе создания проекта.Вы можете иметь его в виде ивара с аксессором или статического в блоке @implementation со статическим аксессором, чтобы иметь доступ к уникальному экземпляру из любого места.
Вы можете внести изменения, чтобы сделатьубедитесь, что это произошло, или установите точку останова.
- (void) scan:(NSTimer *)timer{
//some execution
my_string = @"the new value";
NSLog(@"Changed my_string to %@", my_string);
}