首页 后端开发 php教程 尚学堂ios初级视频资料分享

尚学堂ios初级视频资料分享

Aug 25, 2017 pm 02:44 PM
分享 初级

《尚学堂ios初级视频教程》是尚学堂关于Objective-C语言从基础入门到高级精通的全套视频教程,Objective-C是iOS开发的必备语言.课程会对Objective-C语言进行深入细致的讲述,主要讲解Objective-C基础语法,面向对象编程思想、封装(类的声明和实现、getter和setter方法、属性)、内存管理、继承、多态、分类、协议、block,NSNumber、字符串、数组、字典、日期、文件管理、拷贝等。

594876654af02197.jpg

视频播放地址:http://www.php.cn/course/572.html

在开发IOS过程中的难点:

1. swift语言里面的?和!问题

有帮助的网页,网上查了很多,各说纷云,看得一头雾水,还好一个网页讲得算是明白一点。

补充一点我个人的理解,swift语言看起来简单优雅,实际上里面藏了很多玄机。之所以要用?和!,目的是为了让代码更明确,同时给编译器提供更多线索,发现更多潜在错误。它是Apple发行的语言,很符合Apple的性格,它要你把事情弄清楚再写代码,而不是把模糊的问题丢给编译器来做决定。

2. table view的逻辑

由于iOS系统是不开源的,因此我们要实现表格功能必须安装系统预定好的套路来走。有几个关键点,第一个是它的2个代理,其中一个代理负责提供数据,所谓提供数据,就是2个最主要的接口函数,第一个是告诉系统表格有多少行,第二个就是告诉系统每一行里面的数据是什么内容。第二个会被多次调用,假设一个页面里面有10行,那么这个接口函数就会被调用10次。但不会超出一个页面的次数,因为系统只会请求当前用户看到的页面的数据。假如表格的数据有100个,那么它是通过不断滚动的过程中丢弃旧的,填充新的数据这种方式来实现的。

这是关于view的一个代理,另外一个代理是关于controller的,就是当用户点中表格的某一项时,程序要做些什么,这里面最常用的就是didSelected接口函数,开发者只需要在这里面写自己的实现代码即可。要注意不要写到didDeselected里面,这里面的函数名很容易搞混,这个Deselected是某一项从选中变成不被选中时呼叫的接口。一开始我写到这个里面,总感觉哪里不对,后来才发现。

使用customer类型的prototype时,如何访问里面的label对象?tag的使用。

常见的表格例子,表格里面的cell只有最多2个标签,但我的项目里要放入5个标签,那么如何在代码里面操作这些标签呢?由于界面是在IB里面拉进去的,而cell里面的标签却不能通过ctrl drag的方式拉进代码里面。后来看到一个例子是给每个标签定一个tag值,然后在代码里面用viewByTag

UILabel *name = [cell viewWithTag:TAG_NAME];  
    UILabel *singer = [cell viewWithTag:TAG_SINGER];  
    UILabel *code = [cell viewWithTag:TAG_CODE];  
    UILabel *lang = [cell viewWithTag:TAG_LANG];  
    UILabel *type = [cell viewWithTag:TAG_TYPE];
登录后复制

通过这样的方式就能获取到对于的label。

后来偶然的机会了解到,还是能通过直接的方式访问,但麻烦一点,就是要先把cell用一个class定义好,然后在interface里面手工建立好label的声明,这个时候就可以storyboard里面拉线到table view里面了。

这个页面里面讨论了这个问题。

表格的配置不当,很容易导致app崩溃,而且经常会看到:

在这个地方崩溃:AppDelegate: UIResponder, UIApplicationDelegate 

debug显示的信息是:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UINavigationItem tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x7fd9d1760d70'  

这个原因其实是我在storyboard里面看到table view的data source没有关联,就自己把数据关联到table上面了。很多时候这种崩溃都说由于这个关联的datasource不对,可以先断开来试试。按照我的理解,因为这底层是看不到的,只能猜,就是它关联了这个,就把另一个释放了,从而有用的那个对象找不到,造成系统崩溃。这就是为什么很多资深玩家不喜欢用stroyboard,因为不好掌控,有些隐藏的东西不容易发现。而用代码来实现界面的构造虽然麻烦一点,但胜在够明白,写成什么样就是什么样。而我现阶段还是要依赖图形的工具,我体会图形的一点不好的地方就是2个项目的storyboard不可比较,曾经有些例子,完全按照教程来一步一步做,可是死活不对劲,但下载老师做好的项目又是正常的,比对代码也没有差别,差别就在storyboard,可是storyboard里面的差异非常大,根本看不出端倪,而且把对方的文件直接覆盖自己的也错误百出。

总的来说,还是自己功夫不够深。以后还要深入把基础打好才行。

3. search bar的逻辑

以前的search bar和search display之类的对象是分开的,后来Apple提供了整合在一起的方案,而且还把搜索的算法也封装成对象,期望可以简化开发者的工作。可是对于我这种开发者来说是恰恰相反。反而是最简单的search bar更适合我,因为我只需要在searchbar的内容发生改变的时候运行一次查找,然后把表格刷新一次就行了。而如果调用那些捆绑的display controller,则需要实现更多的协议,而且还要提供一个输出结果显示的table view controller,真的搞得我头晕。Apple官方的资料里面也提供了一个实现的例子,可是这个例子本身就很复杂,涉及到多个view controller。

这个页面里面提供的方式比较适合我。

这个是官方提供的例子,是Apple主导的做法,他们已经剪除了旧的那种做法,现在推荐使用ui search controller的方式,但是不太清楚这样改的背景原因是什么?感觉也没有那么好用啊。

4. 用IB来做界面还是用代码里面实现?

用代码来设置控件的大小有可能在适配不同的屏幕时出现问题,暂时还没有去研究auto resize的部分要怎样做。

但用代码要做界面其实没有想象中那么难,其实只有把界面中的控件当成对象来处理就可以了,创建对象,设置对象的熟悉,把对象add到view里面,设定相关的delegate,然后就OK了。

课程主讲老师郭崇智年轻有为,更符合年轻人的口味,讲课比较轻松自然,让我们听起来也感觉到轻松,更加能够听的进去。

以上是尚学堂ios初级视频资料分享的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

夸克网盘怎么分享到百度网盘? 夸克网盘怎么分享到百度网盘? Mar 14, 2024 pm 04:40 PM

  夸克网盘和百度网盘都是很便利的存储工具,不少的用户们都在询问这两款软件互通吗?夸克网盘怎么分享到百度网盘?下面就让本站来为用户们来仔细的介绍一下夸克网盘的文件怎么保存到百度网盘方法吧。  夸克网盘的文件怎么保存到百度网盘方法  1、想要知道怎么把夸克网盘的文件转到百度网盘,首先在夸克网盘上下载需要保存的文件,然后打开百度网盘客户端后,选择压缩文件要保存的文件夹,双击打开该文件夹。  2、打开该文件夹后,点击窗口左上角区域的“上传”。  3、在电脑中找到需要上传的压缩文件,点击选

网易云音乐怎么分享到微信朋友圈_网易云音乐分享到微信朋友圈教程 网易云音乐怎么分享到微信朋友圈_网易云音乐分享到微信朋友圈教程 Mar 25, 2024 am 11:41 AM

1、首先我们进入到网易云音乐中,然后在软件首页界面中,点击进入到歌曲的播放界面中。2、然后在歌曲播放界面中,找到右上方的分享功能按钮,如下图红框所示位置,点击选择分享的渠道;在分享渠道中,点击底部的“分享至”选项,然后选择第一个“微信朋友圈”,即可将内容分享至微信朋友圈。

百度网盘怎么分享文件给好友 百度网盘怎么分享文件给好友 Mar 25, 2024 pm 06:52 PM

近期,百度网盘安卓客户端迎来了全新的8.0.0版本,这一版本不仅带来了众多变化,还增添了诸多实用功能。其中,最为引人注目的便是文件夹共享功能的增强。现在,用户可以轻松邀请好友加入,共同分享工作和生活中的重要文件,实现更加便捷的协作与共享。那么究竟该如何分享给好友自己需要分享的文件呢,下文中本站小编就将为大家带来详细内容介绍,希望能帮助到大家!1)打开百度云APP,首先点击在首页中选择相关的文件夹,然后再点击界面右上角的【...】图标;(如下图)2)随后点击“共享成员”一栏中的【+】,最后在勾选所

win7企业版激活密钥有哪些的分享 win7企业版激活密钥有哪些的分享 Jul 09, 2023 pm 03:01 PM

win7企业版激活密钥有没有最新的?如果你安装的是官方win7企业版,会提示用windows7企业版产品密钥来激活,否则不能正常使用。所以小编接下来跟大家分享一些win7企业版激活密码,大家一起来看看吧。Q3VMJ-TMJ3M-99RF9-CVPJ3-Q7VF3KGMPT-GQ6XF-DM3VM-HW6PR-DX9G8MT39G-9HYXX-J3V3Q-RPXJB-RQ6D79JBBV-7Q7P7-CTDB7-KYBKG-X8HHCP72QK-2Y3B8-YDHDV-29DQB-QKWWM6JQ

芒果tv会员账号分享2023 芒果tv会员账号分享2023 Feb 07, 2024 pm 02:27 PM

芒果TV拥有各种类型的电影、电视剧、综艺等资源,用户可以在其中自由的选择进行观看。芒果tv会员不仅能够看到全部的VIP剧而且还能够设置最高清的画质,帮助用户爽快看剧,下面小编就给大家带来一些芒果tv免费的会员账号供用户们使用,赶紧来看一看吧。芒果tv最新会员账号免费分享2023:注意:都是收集的最新会员账号,可以直接登录使用,不要随意的修改密码。账号:13842025699密码:qds373账号:15804882888密码:evr6982账号:13330925667密码:jgqae账号:1703

解决Discuz微信分享无法显示的问题 解决Discuz微信分享无法显示的问题 Mar 09, 2024 pm 03:39 PM

标题:解决Discuz微信分享无法显示的问题,需要具体代码示例随着移动互联网的发展,微信成为了人们日常生活中不可或缺的一部分。在网站开发中,为了提升用户体验和扩大网站的曝光度,很多站点会集成微信分享功能,让用户能够方便地分享网站的内容到朋友圈或者微信群中。然而,有时候在使用Discuz等开源论坛系统时,会遇到微信分享无法显示的问题,这给用户体验带来了一定的困

win7系统如何分享wifi热点 win7系统如何分享wifi热点 Jul 01, 2023 pm 01:53 PM

  win7系统如何分享wifi热点?我们电脑在连接了网络之后,也是可以进行无线网络的分享的。很多用户想要将自己电脑的网络分享到手机上来使用。很多小伙伴不知道怎么详细操作,小编下面整理了win7系统如何分享wifi热点的操作方法步骤,如果你感兴趣的话,跟着小编一起往下看看吧!  win7系统如何分享wifi热点的操作方法步骤  1、要想开启wifi热点,首先得要有无线网卡,笔记本是有自带的,pc的话可以购买一个随身wifi来分享wifi,这里就不叙述了。首先按下键盘上的windows键打开开始菜

分享惠普打印机驱动的两种安装方法 分享惠普打印机驱动的两种安装方法 Mar 13, 2024 pm 05:16 PM

  惠普打印机是很多办公室内必备的打印设备,在电脑上安装打印机驱动,可以完美解决打印机无法连接等等问题。那么惠普打印机驱动怎么安装?下面小编就给大家介绍两个惠普打印机驱动程序安装方法。  第一种方法:官网下载驱动  1、在搜索引擎中搜索惠普中国官网,在支持一栏中,选择【软件与驱动程序】。  2、选择【打印机】分类,在搜索框中输入你的打印机型号,点击【提交】,即可查找到你的打印机驱动。  3、根据你电脑的系统选择对应的打印机,win10即选择win10系统的驱动。  4、下载成功后,在文件夹中找到

See all articles