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指南了解如何使用代码
14. 快速帮助: 在类或者方法名上执行Option + Left-click操作
内联帮助可帮开发者快速学习类或代码片段的用法。在变量、类、或者方法名上执行Option + Left-click操作来获得更多细节信息。假使你点击了弹出视图底部的参考链接,那么就可以方便地跳转到Xcode提供的文档中。你还可以在变量、类或者方法名上执行Option+双击名称操作,从而更方便地跳转至文档。
编写代码时获得快速帮助
上面是我复制网站的只是完善一下上面的贴,有能帮我记一下。
我觉的在学继承的时候就会有很多人搞不清为什么子类可以直接用父类的成员变量,为什么又有些子类调用父类的方法时的写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上只是看书感觉是不够的我觉的书上有很多没给我们说清楚的,我们必须看其它开发者的视频吧(毕竟他也开发了几年有经验吧可以告知我们注意什么吧)自己找比较适合自己的开发视频
知道自己就学这门语言就把基础打牢了,毕竟那些面试者问的可能都是基础吧;不要贪多,一口吃不成胖子,编程是一点一点积累的
ios菜鸟总结2的更多相关文章
- 那些所谓过滤掉iOS菜鸟的面试题
一.struct和class的区别<swfit里的array是什么类型,在大量复制时会不会有性能问题.> class是引用类型,struct是值类型 class可以继承类.接口和被继承,s ...
- IOS菜鸟学习
1.NS是系统库.2.IOS类的声明:@interface MyObject : NSObject { int memberVar1; // 实体变量 id memberVar2;} + ...
- iOS菜鸟成长笔记(3)——斯坦福公开课学习(1)
一.iOS四层结构 1.Core OS 是用FreeBSD和Mach所改写的Darwin, 是开源.符合POSIX标准的一个Unix核心.这一层包含或者说是提供了整个iPhone OS的一些基础功能, ...
- iOS菜鸟成长笔记(2)——网易彩票练习
距离上一篇<第一个iOS应用>已经有一个多月了,今天来和大家一起学习和分享一下一个小练习<网易彩票> 首先我们向storyboard中拖入一个TabBarController和 ...
- iOS菜鸟成长笔记(1)——第一个iOS应用
前言:阳光小强最近抽时间学习iOS开发,在学习过程中发现了很多有趣的东西也遇到了很多问题,为了在学习过程中能和大家交流,记录下学习的心得和学习成果,所以就有了这一个系列文章,希望这一系列文章能形成一个 ...
- iOS菜鸟总结1
我从第一次接触OC,我觉得想要学好就必须有提前的知识的储备(比如c,java).这样就可更好了解面向对象的这一思想.学起来就不是很吃力了,本来OC就是比较难学的语言.工欲善其事,必先利其器,Xcode ...
- iOS菜鸟之苹果开发者账号的注册
大家一起来讨论讨论苹果开发者账号的注册(主要是以公司的开发者账号为例),前段时间公司要求注册开发者账号,于是我就特地看了看相关的帖子.这里简单给大家总结一下具体的流程. 首先你要登陆这个网址,进去之后 ...
- iOS菜鸟之AFN的二次封装
我用一个单例类将一些常用的网络请求进行了二次封装,主要包括post请求 get请求 图片文件上传下载 视频的断点续传等功能. 首先大家先去github上下载AFN,将文件夹内的AFNetworki ...
- iOS菜鸟之FMDB的二次封装简单易用
闲来无事写点东西,希望大家多多指正! 大家先去git下载FMDB,然后将其中source文件夹中的fmdb文件夹拖入自己的项目中.最后就可以引用下面的代码对fmdb进行一次简单的封装. 这样可以更直观 ...
随机推荐
- LeetCode104: Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- Python流程控制语句(Control Flow)
Python用于流程控制的语句包括if,for,while,这些都是从C语言借鉴过来的,然后我们会提到pass语句. 1,if if的语法很简答,我们举一个例子就好,注意关键字if, elif, el ...
- RPG JS:免费开源的跨平台RPG游戏引擎
RPG JS是一个2D RPG游戏制作引擎,目前版本基于Ease|JS游戏引擎,基于Canvas Engine的新版本即将发布. RPG JS是免费且开源的. RPG JS有着完善的文档支持. RPG ...
- strlen() 和 sizeof() 在字符串中的使用
#include <string.h> int _tmain(int argc, _TCHAR* argv[]) { char *pMyChar = "I like coding ...
- 在WPF程序中使用摄像头兼谈如何使用AForge.NET控件(转)
前言: AForge.NET 是用C#写的一个关于计算机视觉和人工智能领域的框架,它包括图像处理.神经网络.遗传算法和机器学习等.在C#程序中使用摄像头,我习惯性使用AForge.NET提供的类库.本 ...
- 分享一个导出Excel时页面不跳转的小技巧
今天在点击客户档案导出的时候,发现先是打开了一个新标签,然后新标签自动关掉,弹出一个文件下载确认的窗口,点击确认后开始下载导出的Excel文件.这样的过程感觉窗口闪来闪去,而且可能会给用户带来困惑,是 ...
- C# 反射 通过类名创建类实例
“反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): ...
- cocos2d-x如何截屏并保存图片
转自:http://blog.csdn.net/wolfking_2009/article/details/11022693 static void ScreenShoot() { CCSize si ...
- Microchip 125 kHz RFID System Design Guide
Passive RFID Basics - AN680 INTRODUCTION Radio Frequency Identification (RFID) systems use radio fre ...
- 【转】牛逼闪闪的Ruby迭代器
D瓜哥最近想做一个网站,另外,老早就有学习一门动态语言的想法,满足着两个条件的编程语言中,Ruby.Python是最合适的两种语言.现在Ruby on Rails如日中天,光芒万丈!所以,就选定了Ru ...