ios菜鸟总结2

这个星期学起oc来可能是最纠结的。话不多说先补充一下上一个星期的快捷键吧。工程导航器:Command+1                    

显示/隐藏导航器面板:Command+0

.显示/隐藏实用工具面板:Command+Option+0

6.文件跳转栏:Control+6(键入方法/变量名+Enter跳转)

跳转至当前代码文件中的代码行。如果文件中有上千行代码,你可以通过该快捷操作来缩小查找范围,从而在需要的地方插入代码以添加新的功能。

7.快速打开: Command + Shift + O

喜欢使用键盘但不喜欢使用鼠标的人会大爱这个快捷方式,可以直接跳转到某个方法定义或者指定的代码文件。

1.清除工程: Command + Shift + K

或许有那么一次Xcode运行出现问题,或者应用无法响应,或者出现了意料之外的情况,你首先会想要清除工程并再次运行它。如果这样都还不能解决问题,好吧,关掉Xcode重新打开。倘若应用程序无法运行,先看看有没有错误信息提示,你可以发挥作为“Googler”的优势来获得帮助。不过这种做法不易太过频繁,它会降低程序的开发速度。它将移除所有的中间文件,而再造这些文件还要花费时间。当运行失败时清除Xcode工程】

3.文档和参考: Command + Shift + 0 (Zero)

使用Xcode在后台安装文档,并支持离线搜索查看,非常适合外出办公。打开文档和参考,并键入代码中的某个关键字,Xcode文档还提供了一些额外的资源和示例工程。

通过Documentation and Reference指南了解如何使用代码

043.png

14. 快速帮助: 在类或者方法名上执行Option + Left-click操作

内联帮助可帮开发者快速学习类或代码片段的用法。在变量、类、或者方法名上执行Option + Left-click操作来获得更多细节信息。假使你点击了弹出视图底部的参考链接,那么就可以方便地跳转到Xcode提供的文档中。你还可以在变量、类或者方法名上执行Option+双击名称操作,从而更方便地跳转至文档。

编写代码时获得快速帮助

044.png

上面是我复制网站的只是完善一下上面的贴,有能帮我记一下。

我觉的在学继承的时候就会有很多人搞不清为什么子类可以直接用父类的成员变量,为什么又有些子类调用父类的方法时的写self.。就这个问题纠结了我很长的时间到底是继承了什么;

http://m.blog.csdn.net/blog/huang2009303513/38445593可以看看这个贴里面有很多关于属性和全局变量的区别在继承方面吧希望能帮助你们,总结一下{}里面的变量是全局变量或成员变量它是私有的变量别的文件是不能调用的(就是通过 导包 [对象名 变量])而@property (nonatomic,retain)NSMutableArray *otherList; otherList是属性,是整个工程所有类都可见,其它类是可以访问得到这个成员变量的。在继承中子类是直接继承了父类的全局变量或成员变量 就可以直接掉用变量;在@property声明的变量就如果继承的话就的写self.了我(个人的理解)@property只是声明了属性的设置器方法,它只是属性并不是子类直接继承的变量吧;

一些建议:
1.如果只是单纯的private变量,最好声明在implementation里.
2.如果是类的public属性,就用property写在.h文件里
3.如果自己内部需要setter和getter来实现一些东西,就在.m文件的类目里用property来声明

from:OC中类得局部变量、属性变量、成员变量分别怎么使用、之间有什么区别和联系求详解?

.h中的interface的大括号{}之间的实例变量,.m中可以直接使用;

.h中的property变量,.m中需要使用self.propertyVariab

注意:

类别中的属性property

  类与类别中添加的属性要区分开来,因为类别中只能添加方法,不能添加实例变量。经常会在ios的代码中看到在类别中添加属性,这种情况下,是不会自动生成实例变量的。比如在:UINavigationController.h文件中会对UIViewController类进行扩展

@interface UIViewController (UINavigationControllerItem)
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem;
@property(nonatomic) BOOL hidesBottomBarWhenPushed;
@property(nonatomic,readonly,retain) UINavigationController *navigationController;
@end

  这里添加的属性,不会自动生成实例变量,这里添加的属性其实是添加的getter与setter方法。

    在初始化方法的时候如果是新手就回有逻辑问题——(id)initWithXXX中有一段不变的代码:

self=[super init];

{

if(self){

     XXX

}return self;

}        这时就又人问了就是调用父类的init方法怎么就赋给了当前对象了(就是当前的对象等于父类的初始化方法)我觉得的了解一下super的低层的代码吧;http://www.cnblogs.com/tangbinblog/p/4034890.html这个帖子是我前几天看的对于我这个新手来说看不懂但是里面有一段文字可以解释上面的疑问(super 就是个障眼法 发,编译器符号, 它可以替换成 [slef class],只不过 方法是从 self 的超类开始  )我的理解是super里面是有self的只不过是隐藏了他可以看成self=[self init];当前的对象调用初始化方法;

还有一句 类的实例变量是是让实例方法用;

实例变量的作用域只限于该类定义的实例方法,因此任何实例方法都能直接通过变量的名来访问该类的实例变量,无需其他特殊的操作。在接口中声明的实例变量可通过子类进行继承。继承的实例变量同样可以通过变量名在该子类定义的方法中直接访问,同样这也无需执行其他的操作;

点语法就是调用set方法和get方法这都知道吧就不用我说了;

我再说一下重写吧;可以通过方法的重写子类可以改变从父类继承的行为(子类定义了和父类一样的方法,子类的方法就把父类的方法给覆盖了).

最后一个多多态例如:(animal *p=[[ 狗   allon]init];)就是父类声明的变量(存的是指针)可以指向子类的对象 也就是同一类型的多种表现形态吧;

最后说一下方法吧

我在一个星期的学习oc上只是看书感觉是不够的我觉的书上有很多没给我们说清楚的,我们必须看其它开发者的视频吧(毕竟他也开发了几年有经验吧可以告知我们注意什么吧)自己找比较适合自己的开发视频

知道自己就学这门语言就把基础打牢了,毕竟那些面试者问的可能都是基础吧;不要贪多,一口吃不成胖子,编程是一点一点积累的

原文地址:https://www.cnblogs.com/xiangruru/p/4682152.html