有关Objective-C的一些问题

爸爸Eap紫色

我是一名实习生,并且正在学习Objective-C以开发IOS应用程序。他们已经有一个现有的代码库,但是部分代码给我带来了问题。

由于以前的开发人员不在公司了,并且因为没人对Objective-C有所了解,所以没人能回答我有关应用程序构建方式的一些问题,因此我无法确定是否是我不知道的。不明白,或者这只是不好的做法。

这些是这些问题:

1°)在某些课程中,我发现了这样的代码:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated] }

这段代码没用吧?

2°)在项目中像9/10的方法一样,它们返回(无效)。这是Obj-C中的常见用法吗(因为所有内容都是指针)?

3°)有时在头文件和消息文件中都有接口声明。我猜这是因为您只想在标头中声明一部分以用于将来的include,并希望拥有一个“私有”部分。但是在文件中,我找到以下代码:

在标题中:

@interface WebViewController : UIViewController
    @properties ...
@end

在Msg文件中:

#import ...
@interface WebViewController ()

@end

@implementation WebViewController ...

在msg文件中第二次声明一个void接口有什么意义?

4°)此外,在另一个类中,该接口也被第二次声明,但是定义了一个方法(在msg文件中)。有什么意义,因为该方法在下面定义,并且没有在头文件中声明?

先感谢您

Cocoadelica

欢迎使用Objective-C :)

  1. 不必要。超类可能在其自己的方法实现中定义了特定的行为,如果您不调用它,则会导致问题。覆盖方法意味着默认情况下不会调用父类自己的方法。从注释中添加:当然,如果您不重写它,则可以很好地调用超类定义。有两个常见原因导致您会发现它被覆盖:它在Xcode模板中,因此它一直在那里并且未被删除b。它曾经有其他内容,但是已被删除,并且留下了方法调用。

  2. 是。尽管没有在方法中显式返回void,但是您确实需要指定一些返回类型。如果您不返回任何内容,那么void是正确的值。它通常在obj-c类中找到,因为该方法可以通过使内部ivar或属性发生变异来响应被调用,而不需要返回。或者,结果可能是发送通知,因此不需要返回值。越来越多地使用基于块的完成处理程序代替显式的值返回,作为对方法内容进行响应的一种方式。

  3. 是的,它是要提供一个您不想公开的私有接口。在私有接口中什么也没有的情况下,可能是因为Xcode附带了模板代码而没有人删除它。您可以忽略或删除。

  4. 对于您提到的一种方法,虽然不需要在接口中声明私有方法,但从编写可读代码的角度来看,这是有意义的(在obj-c中得到了强烈认可的概念)。由于编译器将删除任何不必要的代码,因此对其进行声明没有任何区别,并且使您以后读取代码和理解类的任务变得很容易,当您或其他人稍后返回该代码时。这也是将文档放在注释中的好地方,因为它会将所有文档组合在一起。

希望能有所帮助。请查阅Apple的Objective-C编程指南,以获取更多最佳实践提示。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有关SymmetricDS Embedded的一些问题

来自分类Dev

有关班级的一些问题

来自分类Dev

有关资源的一些问题

来自分类Dev

有关Angularjs指令的一些问题

来自分类Dev

有关轮询的一些问题

来自分类Dev

有关光缆的一些问题

来自分类Dev

有关C语言中内存分配的一些问题

来自分类Dev

C ++ STL容器-有关类型的一些问题?

来自分类Dev

分布有一些问题

来自分类Dev

查询有一些问题

来自分类Dev

有关“ angularJS与Plupload一起使用的一些问题

来自分类Dev

有关“ angularJS与Plupload一起使用的一些问题

来自分类Dev

有关带有Openlayers3的WFS-T的一些问题

来自分类Dev

有关克隆/复制TR的一些问题

来自分类Dev

有关使用MongoDB Java驱动程序的一些问题

来自分类Dev

有关表格,css中的位置的一些问题

来自分类Dev

有关何时使用片段和活动的一些问题

来自分类Dev

使用jfugue转换密钥-有关Jfugue的一些问题

来自分类Dev

有关沙发床复制品细节的一些问题

来自分类Dev

有关angular2提供程序的一些问题

来自分类Dev

有关OpenGL透明度的一些问题

来自分类Dev

Scrapy-有关刮论坛的一些问题

来自分类Dev

有关Python功能及其工作方式的一些问题

来自分类Dev

有关Progress-4GL中事件处理的一些问题

来自分类Dev

有关异常安全性和内存泄漏的一些问题

来自分类Dev

有关SSH密钥身份验证的一些问题

来自分类Dev

有关原型和数组的一些问题

来自分类Dev

有关解析multiplt Spring View解析器的一些问题

来自分类Dev

有关沙发床复制品细节的一些问题