ios学习总结

前言

本篇文章主要用来回顾ios学习过程中的一些记录,swift语言和其他语言的特别之处,附加一个天气的小demo

学习记录

  swift语言学习阶段:

  • 基础语法部分和之前学过的差不多,但swift还是有一些特点

    • swift中有闭包类型,虽然之前也接触过java的匿名函数,但实际中很少使用过

    • swift中的结构体,不同于之前学过语言的结构体例如(c,python)。

      • swift中结构体可以被实例化,可以有函数,与类的区别结构体是属于值类型,类是引用类型。

    • swift中属性有存储属性和计算属性,属性中包含计算属性,计算属性提供set,get声明,不同于java里边的setter和getter方法。

    • swift中下标,是之前完全没有见过的新特性。

    • swift中协议,有些类似java里边的接口,但协议使用好像更加灵活,能通过协议定义代理,传输数据。

  • 初步接触基础swift语言,从中能够看到java,python,js的影子

  UIKit学习部分:

  • 页面组件包括:label,textfiled,button,textview这些,之前学过html,所以就是一些添加到其中的组件,很好理解。

  • view:UIcollectionView,UIscrollView,UItableView等,相当于已经划分好了一些基本布局,实现了一些基本功能

  • controller:UINavigationController用于实现跳转页面,类似一个栈push进入,pop弹出,UITabBarController用于底部多个页面供选择,点击对应图标页面就实现跳转,UISearchviewController,搜索框,搜索后动作可以用委任模式。

  • 手势:点击,触摸,长按,双指点击,单指点击,滑动,拖拽等。给某个view添加手势监听,这些手势触发监听就执行相应的操作。

  天气demo:

        源码:GitHub - 299710583/weather

  • Xcode中新建项目会默认使用main.storyboard,也就是说会将UIViewController作为项目进入的第一个页面。

    • 不使用storyboard,纯代码写页面,自定义首先进入的页面需要删除main.stoyboard并做在AppDelegate和SceneDelegate中做一些修改

  • Weather类作为天气对象,用于存储的天气数据

  • Service层中requestService用于实现从api获取并解析数据

  • View层中,WeatherView,一个继承scrollView的类,用于天气数据和图片,图表

  • Controller层:

    • app进入的第一个首页是NewPageViewController,功能包括:添加新的城市天气,删除当前城市天气,存储和取出数据,翻页。

    • MyWeatherController,用于将weather对象中的数据赋值给WeatherView的组件上,实现绘制图表,刷新功能

    • SearchViewController,用于输入要添加的新城市,判断输入是否合法,转换输入的中文,用英文获取天气数据。

  • 用到的三方库:

    • Almofire:直接AF.request(url)能够很方便的发出请求

    • SwiftJSON:很方便的解析获取的json数据,不用每一层都转化为[string:any]的方式

    • SwiftPullToRefresh:这个三方库是在scrollView中加入扩展,很方便的实现下拉刷新或者上拉刷新

    • AAInforgraphics:这个三方库是用来制作各种图表,非常方便,而且在github上有中文文档,各种表格制作的简单教程。d

  • 需要改进的地方:

    • 不应该把那个城市名称中文和英文的对照方法类里边,可以新建一个.plist文件。这因为在写的时候想过java开发里边有.yml和.properties文件,想有没有类似的文件,后面才了解到其实就是plist文件。

    • 存储数据应该直接存储wether对象,而不是存储一个城市名,下次打开用城市名再去请求详细数据,这样就很慢,前提是weather对象继承codeble协议。

    • 刷新的图标应该隐藏。

  • 天气demo任务细化:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值