现在的位置: 首页 > 综合 > 正文

最快入门ios开发(第一,二天)

2013年10月18日 ⁄ 综合 ⁄ 共 6185字 ⁄ 字号 评论关闭

    其实我很反对所谓的xx天学会xx,但是不得已,我还是这么做了……如何在ios学习中对整个知识结构有个把握,这是我想要知道的问题,这里将我的学习经历记录在这里,希望对大家有帮助。另外,cocoa中国官方的学习路线是这样的http://www.cocoachina.com/special/fornew.html

    最近接到一个任务,开发一个ipad应用,但是我基本上是零基础,除了稍微看过一点点code以外,于是,如何快速清晰的掌握大量的ios开发知识是势在必行的。

    第一,二天,主要是概览一下,不过多的编写代码,主要是看几个sample代码,对下面这些东西大致上有个概念,碰到问题知道哪里去找资料,或者说,碰到问题会有根主线提醒。另外,没有过多的关注关于界面方面的代码,应该在后面补回来。

    (补充:经过2天的学习,回过头来发现ios基础非常重要,所以应该一开始就理解透彻,一些内容诸如代理,协议,宏,匿名函数,arc这样的概念,最好是多找几个例子搞清楚,另外有很多书上或者网上查不到的东西,比如xcode环境熟悉,ios程序结构,这些内容看似简单,往往困扰很久,所以sample例子不可少,多看几个sample,有时间多练习几个。最后,一个比较好的学习方式就是类比,用你知道的东西去比喻新的概念。比如,id就很像c#中的var

    以下的内容虽然很多,但是通过归纳总结重点还是可以把内容变少的,另外,以下找到的文章一般我指推荐精品,所以,比较适合收藏。

    1. 熟悉xcode。很多人一上来先去看语法,控件,画图等等。实际上,最好的学习方式还是动手做,而动手做的第一步就是先熟悉开发环境(包括快捷键,以便后面事半功倍)。如果开发环境都不熟悉,那么热情一定会消失殆尽的。

     xcode教程:http://mobile.51cto.com/iphone-273735.htm,http://mobile.51cto.com/iphone-273738.htm

     xcode开发环境上手:http://blog.csdn.net/cutesource/article/details/8488054

     2.熟悉object-c语法

     强烈推荐这篇:objective-c语法快速参考,http://www.cocoachina.com/b/?p=122。基本上将oc与c系列语言的差异都讲解得很清楚了。

     接下来是几组概念,搞清这些概念至关重要。

     2.1协议与委托

      http://www.dapps.net/dev/iphone/ios-dev-protocol-and-delegate-example.html

     2.2内存相关(因为ARC是建立在MRC的基础上的,所以一定要学下内存管理的内容)

     arc:http://onevcat.com/2012/06/arc-hand-by-hand/

     如何让mrc在arc下兼容:http://www.cnblogs.com/buro79xxd/archive/2012/03/11/2390761.html 

     2.3反射,函数指针,selector

     强烈推荐这篇以及这个系列:主要讲到很多关键概念,比如SEL,反射,函数指针,IMP等等  http://www.cnblogs.com/yaski/archive/2009/04/05/1429735.html

     深入objective-c的动态特性 http://www.onevcat.com/2012/04/objective-c-runtime/

     selector:http://mobile.51cto.com/iphone-278572.htm

     反射:http://bj007.blog.51cto.com/1701577/521190

     function与实例变量的区别: http://stackoverflow.com/questions/8994955/warning-implicit-declaration-of-function-is-invalid-in-c99-please-help

     关于这部分,我总结一下:

     每个方法都有一个唯一标识的id,SEL就是这个id的类型,请注意,以下是SEL与NSString的互转方式,我的理解是,这是反射获取方法的方式。

1     SEL 变量名 = @selector(方法名字);
2     SEL 变量名 = NSSelectorFromString(方法名字的字符串);
3     NSString *变量名 = NSStringFromSelector(SEL参数);

     接下来你自然会问,关于方法的反射有了,那么关于类的呢?下面就是类与NSString的互转方式,这是反射获取类的方式

1     Class 变量名 = [类或者对象 class];
2     Class 变量名 = [类或者对象 superclass];
3     Class 变量名 = NSClassFromString(方法名字的字符串);
4     NSString *变量名 = NSStringFromClass(Class参数);

     那么,有些什么常用的反射调用方法,respondsToSelector是判断该对象是否存在这个方法,performSelector是在该对象上执行这个方法。

(id)[对象 performSelector:SEL变量 withObject:参数1 withObject:参数2];
(BOOL)[对象 respondsToSelector:SEL变量];
+(BOOL) instancesRespondToSelector:selector(判断指定的类实例是否能响应selector所指定的方法)  

     还有些支持的反射方法:

-(BOOL) isKindOf:class-object(判断对象是否是class-object或其子类的成员)
-(BOOL) isMenberOfClass:class-object(判断对象是否是class-object的成员)
+(BOOL) isSubclassOfClass:class-object(判断对象是否是指定类的子类)  

     最后是函数指针的两种定义方法(为啥要函数指针,当你大量传递一个对象但其实只需要它中间的某个方法时你就会发现函数指针的好处了),即SEL转IMP

(IMP)[对象 methodForSelector:SEL变量]

     2.4匿名函数

     匿名函数(即块):http://www.onevcat.com/2011/11/objective-c%E4%B8%AD%E7%9A%84block/

     2.5KVC和KVO

     http://www.cocoachina.com/macdev/cocoa/2009/0611/221.html

     http://marshal.easymorse.com/tech/objc-%E4%BD%BF%E7%94%A8kvc

     3.常用类总结

     普通类:NSString与NSMutable http://www.cocoachina.com/newbie/tutorial/2010/1013/2173.html

                     NSArray http://www.cocoachina.com/newbie/tutorial/2010/1009/2151.html

     集合类:http://www.haogongju.net/art/1537639

     第三方类库:http://mobile.51cto.com/hot-249831.htm

     4.ios程序的结构,生命周期及核心

     http://blog.csdn.net/dqjyong/article/details/7832063

     http://blog.csdn.net/kesalin/article/details/6691766

     http://mobile.51cto.com/iphone-222172.htm

     5.ios界面相关

     ios事件    

     http://blog.csdn.net/dqjyong/article/details/7832063

     自动布局

     http://hi.baidu.com/rslhg/item/c51cfdfa03653a18e3e3bd77

     http://onevcat.com/2012/09/autoayout/

     http://www.raywenderlich.com/zh-hans/22873/ios-6-%E8%87%AA%E5%8A%A8%E5%B8%83%E5%B1%80-%E5%85%A5%E9%97%A8%EF%BC%8D1

     first responder理解 
     http://www.devdiv.com/storyboard_first_responder_-blog-1-50012.html 
     http://www.devdiv.com/iOS_iPhone-iphone_responder_chain_interface_builder_first_responder_-thread-30694-1-1.html
     storyboard入门
     http://www.raywenderlich.com/zh-hans/18161/ios-5-storyboard-%E5%85%A5%E9%97%A8-1
     segue
     view层次结构及生命周期
     http://book.51cto.com/art/201201/313173.htm
     http://www.th7.cn/Program/IOS/201301/123201.shtml
     UIViewController
     UIViewController的新方法addChildViewController http://blog.devtang.com/blog/2012/02/06/new-methods-in-uiviewcontroller-of-ios5/
     从UIViewController获得storyboard以及他的UIViewContainer,这里的identifier就是storyboard id。
UIViewController *child = [[self storyboard] instantiateViewControllerWithIdentifier:@"ControllerId"];

     从UIView中获得对象所属的UIViewController

     如果View有view controller,则通过nextResponder方法返回,如果没有则返回superview
- (UIViewController*)viewController {
  for (UIView* next = [self superview]; next; next = next.superview) {
    UIResponder* nextResponder = [next nextResponder];
    if ([nextResponder isKindOfClass:[UIViewController class]]) {
      return (UIViewController*)nextResponder;
    }
  }
  return nil;
}

     切换视图的几种方法

     1. 使用现成的控件UINavigationController,UITabBarController来切换视图
     2. ModalViewController弹出视图
     3. ipad上的UIPopoverController也可以达到同样的效果
     4. 使用UIView的sendSubviewToBack和bringSubviewToFront组合
     5. 使用UIView的removeFromSuperView和addSubView组合
    视图特效
     手势操作
     动画效果
     动画效果入门教程 http://www.raywenderlich.com/2454/how-to-use-uiview-animation-tutorial 
     动画效果的两种实现方式 http://www.cocoachina.com/gamedev/2013/0122/5589.html
     例子:http://code4app.com/search/%E5%8A%A8%E7%94%BB%E6%95%88%E6%9E%9C

     5.比较全的教程(收藏一下,实际上只看了前3篇)。

     http://blog.csdn.net/column/details/ios-base.html?page=1     

     6.常用的代码片段整理

     http://www.cocoachina.com/newbie/tutorial/2012/1220/5377.html

     7.从面试问题看ios的学习方向。

     http://www.onevcat.com/2013/04/ios-interview/

     8.程序调错

     http://www.raywenderlich.com/10209/my-app-crashed-now-what-part-1

     9.另外几个总结得非常好的开发技巧

     http://blog.csdn.net/ztp800201/article/details/9119949

     http://blog.csdn.net/column/details/objc-studyagain.html

     10.绘图动画

     http://lfhzxl.blog.51cto.com/5880209/992204

     11.ios入门视频教程

     http://study.163.com/course/introduction/344014.htm#/courseDetail

         

抱歉!评论已关闭.