课程咨询 :18487146383     QQ:570023382

长沙ios培训 > 达内新闻 > iOS开发初学者详细总结
  • iOS开发初学者详细总结

    发布:长沙ios培训      来源:达内新闻      时间:2016-02-27

  • 每一个课程都有属于课程本身的一种特性,现在长沙ios培训小编告诉你该怎么去学习iOS系统。

    曾尝试webview嵌在tableview里,为了让webview跟tableview一起滚动,把webview的大小设为webview里的内容大小,让webview不出滚动条,从而能跟着tableview的滚动条一起滚。这样做的后果是每次webview都一次性渲染整个页面

    基础篇

    为什么对一个变量release后还要设为nil

    对一个变量release后,这个变量指向的内存释放了,但这个变量本身没变,仍指向原来的内存地址。若这个变量在释放后被访问,或者被重复release,就会导致应用崩溃。设为nil后这个变量指向0×00,可以保证程序以后访问不到原 的内存地址,对nil进行release也没任何问题。

    使用类成员时,前面加不加self.有什么区别

    不加self.调用的是成员本身,加self.后实际上调用了其成员的get set方法。

    例:

    //.h

    @property (nonatomic, retain) NSString *name

    //.m

    name = @"bang" //没有retain,随时会被释放

    NSString *str = self.name //等于NSString *str = [self name];

    self.name = @"bang" //等于[self setName:@"bang"]; 这时在set方法里retain了这个字符串

    技巧篇

    内存泄漏

    可以通过xcode的编译工具Product-Analyze检查函数块范围内可能的泄漏点(外带会提示一些可能有的错误)。

    用leaks工具监测出来的泄漏查找方法是跟踪其代码提示中出现的变量,经常这个变量是在提示的调用堆栈以外的地方泄漏的。若实在查不到,最终办法是重写这个变量的retain和release方法,debug,从调用堆栈看是谁retain了它而没有 release。

    要注意的是,用CFXXCreate(例如CFArrayCreate)生成的变量要用CFRelease释放。

    数据存储

    如无搜索需要,可以将一个数据对象直接序列化后存到sqlite,取出时直接反序列化为对象使用。序列化需要数据类实现NSCoding协议,实现encodeWithCoder和initWithCoder两个方法就行,若有多个数据对象,可以写个基类实现这两个方法 并在这里面利用反射枚举自身所有变量去encode和decode,一劳永逸,具体实现网上找找就有了。

    组件篇

    UINavigationController头尾显示隐藏

    在用NavigationController去管理view的push和pop时,需要根据不同的view设置是否显示NavigationBar和ToolBar,一开始在错误的地方设置了,导致有时该显示NavigationBar和ToolBar时不显示的情况,后来发现在viewWillAppear上设置万无一失。别笑我土 鳖,没好好去理解它整个流程,一直没发现。

    - (void) viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

    [self.navigationController setToolbarHidden:NO];

    [self.navigationController setNavigationBarHidden:NO];

    }

    UITableView游标式渲染

    tableView的机制大概是:先定好总行数,某一行滚入视图范围时,回调一个函数去取view出来显示。这一行滚出视图再滚入时仍会继续回调这一函数取view。有这样的机制就是说无论你table里的数据有多少,都可以全部放入table中不 分页,因为不用一次性把所有数据都取出来,只在需要显示的时候根据游标去取对应的数据就行了。

    可能这是APP组件很自然的方式不用说明,但在web上页面上的数据和元素都是要一次性载入内存的,做久了web,一开始没想到它这样的实现机制,导致我们走了不少弯路。

    UIWebView渲染范围

    UIWebView不是根据可视范围决定每次的渲染范围,而是根据自身控件的frame大小决定。

    曾尝试webview嵌在tableview里,为了让webview跟tableview一起滚动,把webview的大小设为webview里的内容大小,让webview不出滚动条,从而能跟着tableview的滚动条一起滚。这样做的后果是每次webview都一次性渲染整个页面,内存占用多性能 差,而且在放大缩小这个webview时,渲染放大的整个页面更吃力,出现不能忍受的性能。解决办法是让webview定住高度为一整屏iphone的高度,限制了webview每次的渲染范围为可视范围,性能大好。带来的问题是无法随tableview滚动, 可以以其他方式优化体验。最近看到新版的ZAKER也是这样做的。

    长沙ios培训小编个人感觉篇

    界面布局调整非常麻烦,让人怀念web了。界面描述方法XIB感觉晦涩难学,至今不会,没有CSS+HTML来得方便。

    有编译器把关,少了像写js时多写or写错一个字符查半天的问题。

    Object-C写起来各种变量函数和变量调用很长,没有js的短小精悍来得爽。

    第一次编写涉及手动内存管理的程序,挺有意思,没想象中难,但有些内存管理导致的bug很难查。

    虽然APP不像web那样随时更新,但也不像传统PC客户端升级那么麻烦,用户更新意愿更强,还是适合快速迭代的。

    细节是可以决定成败,但得看你把什么定成细节。

    最后,0 bug的程序不存在,极致是把最主要的事做好。done is better than perfect。

    学习是一件循序渐进的事,长沙ios培训小编希望大家一直在努力的路上。

    苹果前员工批评库克:管理者而非领导者

    关于库克开除iPhone软件高级副总裁斯科特·福斯特(Scott Forstall),索伯塔说了自己的一些想法:

    不是一个有人缘的人

    索伯塔写道:“首先,库克不是一个有人缘的人。如果事情变得糟糕,他当然不会站在背后。他不是这样的人。在他身上,感觉到不别人对他的忠诚,我想苹果员工已经理解这点了。”

    “对于数字,或者对于很快会犯错的恐惧,他会响应。害怕犯错是一种管理特质,它在苹果相当强大而深入,因为这是苹果运营公司的方式。尽管表面上是错的、但最终可能正确,在苹果也是相当让人害怕的。”

    “在苹果你不能犯错,否则没有第二次机会。这点常常阻碍了决策制定,在本来应该合作的团队间造成了许多消极性的进攻。”

    对品性判断不准

    “库克是一位零售传说人物,我没有跟他共事过,他可能不是一个会招人的人,这符合库克的品性。我看他招的人都不怎么样。我觉得他与人的关系不好。根据一些他不断交往的人来看,他对人的品性判断力不好。”

    “在制定决定上,苹果从没有一定的准则。常常听乔布斯话的人赢。一些人在圈内常常有人。现在呢,好像向库克传话的人会赢。”

    对科技

    “关于科技智慧,我觉得库克是不是一个重量级的人。我曾从乔布斯身上、从一些好工程师身上感觉到了科技热情,但从库克身上无法感受到。”

    管理者,非领导者

    “我猜想,要管理这么多人,库克曾有过困难期。据我所见,他是一个孤独者。他不是一个热情的人,也不是跑到大厅、咖啡Mac打听事情的人。他喜欢查看电子表、数字。他不是一个天生的领导者,而是一个管理者。”

    “据我所见,库克应该是这样的人:宁可炒了谁,而不是看什么管用,什么不管用。如果不是数字,他不太想深入细节。我觉得他容易受到一些人影响,这些人为了保护自己,会让自己远离公司混乱的部分。”

    痛苦的部分

    “我用过Moutain Lion和Windows 7。Windows更好。这样说让人心伤。”

    “苹果会变得更糟糕,这不是一种可持续的企业文化。”

    乔布斯之后

    “我看到了三个方面,首先是企业内的文化。在乔布斯之后,尽管企业需要强劲的领导力,但苹果的每个人可能都会告诉你,冒险、展示领导力没有得到鼓励。苹果有强大的‘向上管理’文化,苹果管理者无法真正掌握线索, 知道客户群发生了会什么,这是不寻常的。”

    “第二,苹果没有培育自己的人才,它强烈倾向从外部挖人。新人进来了,花了一年时间搞清目标是什么,结果相当让人失望。向这些人汇报工作的员工没有了斗志,他的上司花一年时间学了什么,员工却早就知道。运营企业 这是相当可怕的。”

    The Next Great Thing

    “第三,苹果是一家‘Next Great Thing’的企业,它无法持续。自从iPad和iPhone之后,它没有找到下一个大产品是什么,在这两个领域,它的份额下降。在很大程序上,他忽略传统电脑。”

    “我还要在第三点上加第四点,但这点值得争议。在过去,每当苹果遇到麻烦、或者太自大了,它可以回到一些核心粉丝中来。我想,苹果已经失去、或者正在失去这些拥戴者,我没有具体的数据佐证,但一些人、比如我不再 苹果产品的忠实信徒了。”

    “一位苹果前同事告诉我,他准备给自己的妻子换电脑,妻子选什么就买什么,最终他妻子选了联想。”

    推荐文章

上一篇:iOS网络编程培训数据存储与配置

下一篇:苹果无需为FBI解锁手机

最新开班日期  |  更多

3G-IOS软件工程师就业班

3G-IOS软件工程师就业班

开班日期:11/30

3G-IOS软件工程师就业班

3G-IOS软件工程师就业班

开班日期:11/30

3G-IOS软件工程师全日制班

3G-IOS软件工程师全日制班

开班日期:11/30

3G-IOS软件工程师周末班

3G-IOS软件工程师周末班

开班日期:11/30

  • 网址:http:/cs.ios.tedu.cn     地址:长沙市芙蓉中路一段479号建鸿达现代城27楼
  • 课程培训电话:18487146383     QQ:570023382     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56