Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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 IOS-使用#导入类的正确方法_Objective C_Ios_Class_Import - Fatal编程技术网

Objective c IOS-使用#导入类的正确方法

Objective c IOS-使用#导入类的正确方法,objective-c,ios,class,import,Objective C,Ios,Class,Import,我正在写一个测试项目来学习用代码编写所有东西。我想这样做,这样我就可以更好地理解故事板中的元素在场景的背后为我做了什么 在我的项目中,我有几个UIViewController,它们共享相同的UI元素。例如,我在屏幕顶部有一个UITool栏,其中有几个按钮 现在我想把UIToolbar放在一个单独的类中,这样我就不必把它全部写出来或复制粘贴到每个控制器中 现在我知道我可以通过这样做来实现这一点: #import "General_Add_ons.h" //the UIToolbar is prop

我正在写一个测试项目来学习用代码编写所有东西。我想这样做,这样我就可以更好地理解故事板中的元素在场景的背后为我做了什么

在我的项目中,我有几个UIViewController,它们共享相同的UI元素。例如,我在屏幕顶部有一个UITool栏,其中有几个按钮

现在我想把UIToolbar放在一个单独的类中,这样我就不必把它全部写出来或复制粘贴到每个控制器中

现在我知道我可以通过这样做来实现这一点:

#import "General_Add_ons.h" //the UIToolbar is properly set up in this file

@interface FirstViewController : General_Add_ons  
然后我只使用
[self-topttoolbar]//topToolBar是工具栏的名称

现在我只想澄清一下,这是实现这一目标的最佳途径还是唯一途径

不知何故,我觉得我应该能够做到这一点:

    General_Add_ons *gao = [[General_Add_ons alloc] init];
    [gao topToolbar];
我是不是想错了?在我有多个外部类的情况下,第一种方法似乎是有限的


提前谢谢。

你的方法似乎是正确的。如果有多个
UIViewController
实例需要相同的UI元素或其他控制器代码,则可以将这些元素放入
UIViewController
子类中。在您的例子中,我相信类
General\u Add\u ons
是您的子类将从中继承的
UIViewController

此类(您的
常规\u加载项
)应具有可重用工具栏的属性,例如

@property (nonatomic, strong) UIToolbar *toolbar;
另一方面,按照惯例,Cocoa中的类名是:前缀+不带下划线的大写单词。苹果在这方面很有参考价值

编辑


为了澄清,您可以根据需要多次对自定义子类进行子类化。例如,在我的代码中,我有一个类
CCFViewController
,它封装了我希望所有视图控制器都具有的公共属性和行为。然后,在项目中,所有视图控制器都继承自该父控制器。类似地,您的工具栏将位于超类中,其他控制器将从中继承

我不是100%确定,但我认为你应该这样做:

General_Add_ons *gao = [[General_Add_ons alloc] init];
[gao.topToolbar anypossiblemethodcall];

感谢您提供有关命名约定的提示-我在制作官方应用程序时确实使用了正确的命名约定:-)因此,如果我理解正确,第一种方式是最好的方式?是的,我认为第一种方式是您想要的。在第二种情况下,直接实例化超类。因为它听起来像是
General\u add_ons
是一个不必要的
UIViewController
子类。好吧-很抱歉再麻烦一次,如果我有多个UIViewController,因为我想以某种方式组织事情,而不是第一种方式只允许我做一个子类,对吗?我不能从多个类继承??如果
General\u add\u ons
UIViewController
子类,那么您可以根据需要多次对其进行子类化。您甚至可以对这些子类进行子类化,等等。至于第二个问题——正确,ObjC不做多重继承。谢天谢地。酷,我想我明白了:-)多练习:-)