Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
Objective c 传递变量_Objective C - Fatal编程技术网

Objective c 传递变量

Objective c 传递变量,objective-c,Objective C,嗨,我有一个关于通过NSobject将变量传递到rootviewcontroller的问题 我有2.h和.m文件(称为viewcontroller.m/h和secondviewcontroller.m/h) 下面是我要做的一个小例子 secondviewcontroller.m -(NSString*)mystring{ return@“这是一个字符串” } secondviewcontroller.h @接口SecondviewController:NSObject -(NSString*)m

嗨,我有一个关于通过NSobject将变量传递到rootviewcontroller的问题

我有2.h和.m文件(称为viewcontroller.m/h和secondviewcontroller.m/h)

下面是我要做的一个小例子

secondviewcontroller.m

-(NSString*)mystring{

return@“这是一个字符串”

}

secondviewcontroller.h

@接口SecondviewController:NSObject

-(NSString*)mystring

@结束

如何将此变量传递到viewcontroller.m

我读了很多关于谷歌的文章,但是大多数的实现都是错误的,或者我的研究是糟糕的xD

如何将此变量传递到viewcontroller.m

实际上,你没有向我们展示任何变量
-myString
返回一个常量字符串。另外,请记住viewcontroller.m只是一个实现文件。与一段源代码与另一段源代码通信相比,考虑对象之间的通信可能更好。我与你沟通,但我的DNA与你的DNA不沟通

不管怎样,听起来你在问一个对象如何与另一个对象通信,答案很简单,对话中至少有一个对象需要了解另一个对象。因此,
viewcontroller
类的实例可能会从其他对象获取指向
secondviewcontroller
实例的指针,或者它可能会自己创建一个新实例。
viewcontroller.m
中的部分代码可能如下所示:

secondviewcontroller *svc = [[secondviewcontroller alloc] initWithNibName:nil bundle:nil];
NSString *someString = [svc myString];

这不是一个特别现实的例子,但您提供的示例也不是。不过,教训是一样的——对象通过相互发送消息进行通信,而一个对象需要对另一个对象的引用才能发送该消息。弄清楚哪些对象应该知道哪些其他对象,它们如何了解彼此,以及它们向彼此发送什么消息,这正是面向对象编程的业务。在OOP中,真正重要的不是对象本身,而是它们之间的关系。这都是关于使用对象作为构建块创建的结构。

您能澄清一下您的问题吗?一般来说,有很多方法可以做你想做的事。委托,或者如果第二个是第一个的成员var,那么它可以简单地调用它。我在这里发表评论的主要原因是想问这些是否应该是uikit中的ViewController?如果是这样的话,您应该从UIViewController而不是NSObject派生。谢谢,我仍然在弄清楚这一点,并且仍处于学习阶段。你的故事让我看得更清楚