Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将数据放入全局变量时遇到问题_Ios_Objective C_Uitableview_Scope_Global Variables - Fatal编程技术网

Ios 将数据放入全局变量时遇到问题

Ios 将数据放入全局变量时遇到问题,ios,objective-c,uitableview,scope,global-variables,Ios,Objective C,Uitableview,Scope,Global Variables,我有几个方法实现需要访问相同的变量。例如,我有一个变量,我把用户的名字放在其中,我需要能够在同一个视图控制器中的所有方法实现中访问该变量 我创建了一个名为“PotentialFriend”的自定义类,它是NSObject的一个子类。PotentialFriend的头文件还包含一个名为“name”的NSString属性 在视图控制器的头文件中,我创建了一个名为“PotentialFriend”的PotentialFriend类的实例。我可以在视图控制器的主文件中成功地键入“_potentialFr

我有几个方法实现需要访问相同的变量。例如,我有一个变量,我把用户的名字放在其中,我需要能够在同一个视图控制器中的所有方法实现中访问该变量

我创建了一个名为“PotentialFriend”的自定义类,它是NSObject的一个子类。PotentialFriend的头文件还包含一个名为“name”的NSString属性

在视图控制器的头文件中,我创建了一个名为“PotentialFriend”的PotentialFriend类的实例。我可以在视图控制器的主文件中成功地键入“_potentialFriend.name”,但如果我将其设置为与@“Steve”等值相等,则在控制台中显示为(null)

但是,如果我执行以下操作,并实际初始化一个局部变量,我可以成功地获取该变量以保存数据:

PotentialFriend *potentialFriend = [[PotentialFriend alloc]init];

potentialFriend.name = @"Steve";
但这对我不起作用,因为我在这个VC中有另一个方法实现,它设置UITableView的设置,我需要能够访问“potentialFriend.name”的值

我知道的唯一方法是使用全局变量,但就像我说的,我不能让全局变量实际保存数据

知道为什么我不能让全局变量工作吗

编辑:

我只是去做了个测试。我在视图控制器的头文件中创建了一个NSString对象,并成功地将其作为全局变量保存数据,如下所示:

_potentialFriendz = @"Steve";

所以这一定与我创建了自己的名为PotentialFriend的自定义类有关,但我仍然不明白为什么这样做不起作用。

听起来好像你没有为
PotentialFriend
分配和初始化对象。仅将其声明为标头中的属性不会实例化其中的对象。它只是一个可以保存指定类型对象的属性

您需要执行以下操作:

self.potentialFriend=[[potentialFriend alloc]init]

viewdiload:
或其他一些初始化方法中(如
initWithCoder:


在其他语言中,在没有实例化对象的情况下设置
potentialFriend.name
会引发某种异常或其他情况,但Objective-C允许将消息发送到nil(当使用点语法时,这相当于
[potentialFriend setName:@“string”]
),我想在过去的几天里,我对我的全局变量感到很幸运。谢谢你的帮助。