Ios 关于Objective-C的几个问题
我是一名实习学生,我正在学习Objective-C以开发IOS应用程序。他们已经有了一个现有的代码库,但是代码的某些部分给我带来了问题 由于之前的开发人员已经不在公司了,而且因为没有其他人知道Objective-C,所以没有人能够回答我关于如何构建应用程序的一些问题,所以我无法确定这是我不理解的,还是仅仅是不好的做法 以下是这些问题: 1°)在某些类中,我发现如下代码:Ios 关于Objective-C的几个问题,ios,objective-c,Ios,Objective C,我是一名实习学生,我正在学习Objective-C以开发IOS应用程序。他们已经有了一个现有的代码库,但是代码的某些部分给我带来了问题 由于之前的开发人员已经不在公司了,而且因为没有其他人知道Objective-C,所以没有人能够回答我关于如何构建应用程序的一些问题,所以我无法确定这是我不理解的,还是仅仅是不好的做法 以下是这些问题: 1°)在某些类中,我发现如下代码: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppe
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated] }
这个代码没用,对吧
2°)在项目中类似的9/10方法中,它们返回(无效)。这是Obj-C中的常见做法吗(因为一切都是指针)
3°)有时在头文件和消息文件中都有接口声明。我猜这是因为您只想在标题中为将来的包含声明一个部分,并拥有一个“私有”部分。但在一个文件中,我发现以下代码:
在标题中:
@interface WebViewController : UIViewController
@properties ...
@end
在Msg文件中:
#import ...
@interface WebViewController ()
@end
@implementation WebViewController ...
在msg文件中第二次声明void接口有什么意义
4°)此外,在另一个类中,接口也被第二次声明,但定义了一个方法(在msg文件中)。下面定义的方法没有在头文件中声明,这有什么意义
提前感谢欢迎来到Objective-C:)
- (BOOL)isEmptyOrNull:(NSString*)str;
3) 。这些被称为扩展,您可以在这里了解更多
扩展用于从外部世界隐藏方法(我说的隐藏是指你用眼睛找不到这些方法)
4) 。在实现文件中定义的方法对于程序员来说是不可见的,它就像java中的私有方法一样,但在ObjC中没有私有方法这样的东西。阅读这个关于私有方法的帖子我认为问题#1基本上是“为什么要声明一个覆盖函数,而它只调用父版本”@PeterM是的,这就是我想说的:)对于第二个问题,我的问题更多:在obj-c中有很多方法返回void是常见的吗:例如,我一直在用java编程,而且这种情况很少发生,它们中的大多数实际上返回了一些东西。嘿,是的,对于#1,如果除了调用父版本之外,您不需要做任何事情,那么您根本无法重写。声明它有两个常见的原因:它在模板中,所以它一直在那里,没有被删除&它以前有其他内容,但它被删除了,方法调用被留下了。就#2而言,是的,我看到了很多无效返回方法,因为变异类属性/ivar或者触发通知而不是发送返回值是很常见的。顺便说一句,这是一个很好的问题,我喜欢那些让我们重新审视基本假设的问题。这些是一些非常基本的问题,可以通过对Stackoverflow的一些研究和搜索找到。您以前做过任何研究吗?.m不代表“消息”,而是代表“实现”文件;)第一项:在这种“无意义”的方法中设置断点很容易,以确定何时调用它。这使得它很有用。编写代码是为了使应用程序更易于调试,这一点在代码增长后非常重要。请阅读此文档将回答您的所有问题。