swift3笔记
备注:这里只是个人的观点,有的地方也是copy,多多指教,个人笔记,有侵犯你们版权的地方还望海涵!!!
个人觉得swift和OC最大的区别就是增加了许多现代化的东西,java里面的闭包,private,public等修饰符的加入。
1.关于按钮点击方法:
btn.addTarget(self, action: #selector(compseBtnClick), for: .touchUpInside)
说明:这是在3.0后的变化,在前面我们用的是Selector,但是在3.0后面用的一般是#selector。如果给我们的监听方法加上private就会报错,根据个人的理解就是,我们的按钮点击事件是在我们的点击的时候,这个事件触发实在我们运行循环机制里面触发的,但是我们加了私有的访问类型。所以别的地方是不能访问的,只有特定的对象指针才能去访问。但是在OC里面可以,因为OC动态加载运行,所以在OC中的运行时机制是很重要的,所以一定要了解运行时机制。所以加上@objc外部类可以此方法。
实现点击方法:
@objc fileprivate func compseBtnClick(btn: UIButton)
{
NJLog(message: btn)
}
2.swift的convenience构造方法和init构造方法的见解和观点:
当自定义convenience构造方法的时候,我们首先必须调用init构造方法对convenience构造方法进行初始化属性,而且convenience构造方法不对所有的属性进行初始化,所以我们的convenience构造方法依赖于我们的init构造方法。所以我们在对系统原有的方法性从写的时候我们必须前面加一个convenience,以表示是对原有系统方法的从写。
3.storyboard和代码的好坏:
storyboard快发速度快,搭建界面可视化,后期维护费劲,而且有的时候xcode升级后会莫名其妙的出现问题(个人觉得时间充裕的话尽量用代码)。代码开发时间长,但是后期维护比较好,不能可视化(前期的架构很重要),架构不好的代码维护起来也很费力,以前我遇见过很多这样的代码,真想吐的感觉。所以代码架构好坏会影响到后期维护的成本以及app的走向趋势。
4.浅谈项目的架构和管理(只是个人观点):
项目的整体规划是特别重要的,例如在架构的时候,服务器那边的架设问题,以及客户端的架设问题,这里就我自己我谈谈关于iOS端项目的架构问题。(1)对于本地的项目有一个整体的规划,明确那里业务逻辑该走那一部分,通常有这几种设计模式:VIPER模式(美团采用的就是这种模式,V:视图,I:交互器,P:展示器 E:实体 R:路由(分发任务))、MVC模式:(model->view->controller)、MVVM模式:(M:model V:视图+控制器 VM:视图模型)、MVCS模式:(M:模型,V:视图 C:控制器 S:服务器),前面列举的中几种模式会根据你们公司的产品的设计不同而不同,自己选择一种合理的模式,在客户端我采用的一般是MVC设计模式,当然这种模式有好的地方,也有不好的地方,好的地方,利于代码的查找的模块化管理,不好的地方就是在一些安全性较高或者是业务逻辑复杂的APP中,需求没法满足(2)在代码架构的初期一定明确整个APP的走形问题 (3)一些有共同点的代码进行封装 (4)产品需求的确认和明确 (5 )开发人员任务的分发。当然一个好的app不光只是这些东西,例如你还要加入一些三方元素在里面等等。
swift3笔记的更多相关文章
- swift学习笔记 - swift3.0用GCD实现计时器
swift3.0之后,GCD的语法发生了翻天覆地的变化,从过去的c语法变成了点语法,下面是变化之后用GCD实现计时器的方法: 先贴代码: // 定义需要计时的时间 var timeCount = 60 ...
- Swift3.0 基础学习梳理笔记(一)
本篇是我在学完一遍基础语法知识的时候,第一遍复习,我一遍梳理一遍记录的笔记.同时分享给像我一样在学习swift 的猿友们. 本篇可能过于冗长.所以所有的参考资料都分模块的写在palyground 里, ...
- Swift3 今日(TodayExtension)扩展图文笔记
>图片1(创建今日扩展) >图片2 >图片3(设置大小) >图片4(绘画控件) >图片5(设置共享文件) >图片6(设置群组ID) >图片7(设置URL ...
- Swift3 Xcode8 Ios10 开发笔记
设置不同subView的层次: //将subView挪到最上边 self.view.bringSubviewToFront(subView) //将subView挪到最下边 self.view.sen ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- swift3.0 hello swift(1)
一直对swift感兴趣,在前段时间的新闻中,大多是swift3.0发布和xcode8.0的改进,因为改动比较大,以前使用swift2.x做项目的人,都在担心其项目从2.x迁移到3.0+的问题.以前简单 ...
- Swift3.0服务端开发(五) 记事本的开发(iOS端+服务端)
前边以及陆陆续续的介绍了使用Swift3.0开发的服务端应用程序的Perfect框架.本篇博客就做一个阶段性的总结,做一个完整的实例,其实这个实例在<Swift3.0服务端开发(一)>这篇 ...
- C# 8.0和.NET Core 3.0高级编程 分享笔记三:控制流程和转换类型
控制流程和转换类型 本章的内容主要包括编写代码.对变量执行简单的操作.做出决策.重复执行语句块.将变量或表达式值从一种类型转换为另一种类型.处理异常以及在数值变量中检查溢出. 本章涵盖以下主题: 操作 ...
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
随机推荐
- K-wolf Number (数位DP)
题意:求区间内有多少个数满足条件:任意相邻的k个数位都不相等. 思路:老套路 #include<bits/stdc++.h> using namespace std; typedef lo ...
- eclipse自定义快捷键(模板)
window->Preferences->Java->Editor->Templates https://blog.csdn.net/changqing5818/article ...
- Nginx优化详解-------超详细
一.一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cp ...
- Python 协程实现socket并发
socket多并发 socket可以实现单个客户端进行请求访问,它可以通过socketserver来实现并发功能呢,socketserver是通过启用多线程实现并发,在这里我们也可以通过gevent协 ...
- Idea 提交代码到码云(提交到github也大同小异)
1.首先下载安装git,下载地址https://git-scm.com/download/win.按默认选择安装即可,不成功的自行百度 2.安装完成后双击git.exe,调出命令界面(此处需要自己去申 ...
- MIME类型解析
MIME(Multipurpose Internet Mail Extensions)多用途网络邮件扩展类型,可被称为Media type或Content type, 它设定某种类型的文件当被浏览器打 ...
- [c/c++] programming之路(21)、字符串(二)
一.for /l %i in (1,1,5) do calc 等命令行参数 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #inclu ...
- yaf
一.yaf使用自定义的类 Yaf的library和model的文件命名规则和调用:https://www.cnblogs.com/leedom/p/9396138.html 安装参考: https:/ ...
- topcoder srm 590 div1 (max_flow_template)
problem1 link 对于每一个,找到其在目标串中的位置,判断能不能移动即可. problem2 link 如果最后的$limit$为$11=(1011)_{2}$,那么可以分别计算值为$(10 ...
- 关于 使用python向qq好友发送消息(对爬虫的作用----当程序执行完毕或者报错无限给自己qq发送消息,直到关闭)
以前看到网上一些小程序,在处理完事物后会自动发送qq消息,但是一直搞不懂是说明原理.也在网上找过一些python登陆qq发送消息的文字,但是都太复杂了.今天偶然看到一篇文章,是用python调用win ...