我知道这个问题真的很老了,但我从另一个类访问NSString时遇到了很多麻烦;
假设我有FirstViewController
和SecondViewController
,并且Second
我希望访问名为string
的NSString - FirstViewController
- (好吧,我知道这很明显)。这是SecondViewController
的代码:
FirstViewController *viewController = [[FirstViewController alloc] init];
NSLog(@"%@", viewController.string);
但结果是(null)
,因为它从init
方法中获取值。
任何人都有一些提示/解决方案可以从声明的任何地方访问string
吗?
谢谢!
答案 0 :(得分:1)
如果您正在执行我认为您正在执行的操作,那么您将在第二个视图控制器中创建新版本的FirstViewController
,除非FirstViewController.string
在init块中初始化为某个值,将返回一个零值。
我认为你想要的是通过访问已经创建的FirstViewController
中的项来获取字符串的值。有多种方法可以执行此操作(取决于您从第一个方面推送SecondViewController
以及是否使用Storyboard。
答案 1 :(得分:0)
全局变量可能是你的答案。除非您在标签栏控制器中,否则无法从另一个类“提取”数据。可以将你的值从ViewController1推送到你的ViewController2,但为了拉它,我会说全局变量将为你节省很多麻烦。