备注:这里只是个人的观点,有的地方也是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笔记的更多相关文章

  1. swift学习笔记 - swift3.0用GCD实现计时器

    swift3.0之后,GCD的语法发生了翻天覆地的变化,从过去的c语法变成了点语法,下面是变化之后用GCD实现计时器的方法: 先贴代码: // 定义需要计时的时间 var timeCount = 60 ...

  2. Swift3.0 基础学习梳理笔记(一)

    本篇是我在学完一遍基础语法知识的时候,第一遍复习,我一遍梳理一遍记录的笔记.同时分享给像我一样在学习swift 的猿友们. 本篇可能过于冗长.所以所有的参考资料都分模块的写在palyground 里, ...

  3. Swift3 今日(TodayExtension)扩展图文笔记

    >图片1(创建今日扩展) >图片2  >图片3(设置大小)  >图片4(绘画控件) >图片5(设置共享文件)  >图片6(设置群组ID) >图片7(设置URL ...

  4. Swift3 Xcode8 Ios10 开发笔记

    设置不同subView的层次: //将subView挪到最上边 self.view.bringSubviewToFront(subView) //将subView挪到最下边 self.view.sen ...

  5. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  6. swift3.0 hello swift(1)

    一直对swift感兴趣,在前段时间的新闻中,大多是swift3.0发布和xcode8.0的改进,因为改动比较大,以前使用swift2.x做项目的人,都在担心其项目从2.x迁移到3.0+的问题.以前简单 ...

  7. Swift3.0服务端开发(五) 记事本的开发(iOS端+服务端)

    前边以及陆陆续续的介绍了使用Swift3.0开发的服务端应用程序的Perfect框架.本篇博客就做一个阶段性的总结,做一个完整的实例,其实这个实例在<Swift3.0服务端开发(一)>这篇 ...

  8. C# 8.0和.NET Core 3.0高级编程 分享笔记三:控制流程和转换类型

    控制流程和转换类型 本章的内容主要包括编写代码.对变量执行简单的操作.做出决策.重复执行语句块.将变量或表达式值从一种类型转换为另一种类型.处理异常以及在数值变量中检查溢出. 本章涵盖以下主题: 操作 ...

  9. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

随机推荐

  1. The All-purpose Zero (最长公共子序列)

    题意:求最长公共子序列,但是有个辅助条件,那就是如果那个值为0,那么他可以更换为任意值. 思路:假设现在只剩下没有0的序列是不是就很好求了?那么我们的想法就是看有没有办法将0往最左端或者最有端移动,显 ...

  2. Python- 解决PIP下载安装速度慢

    让PIP源使用国内镜像,提升下载速度和安装成功率. 国外的源下载速度太慢,而且经常出现下载后安装出错问题.把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成功率. 国内源: 新版ub ...

  3. 面试(I)

    即时通讯 为什么要TCP连接建立3次? 假设是2次: 假如在第1次客户端向服务器端发送请求因为阻塞,客户端会再次给服务器端发送请求,这次服务器端和客户端建立了连接.这样双方就可以发送数据了,发送完以后 ...

  4. 基于Vue的Quasar Framework 介绍 这个框架UI组件很全面

    基于Vue的Quasar Framework 介绍 这个框架UI组件很全面 基于Vue的Quasar Framework 中文网http://www.quasarchs.com/ quasarfram ...

  5. P1636 Einstein学画画

    一笔画问题 P1636 Einstein学画画 如果一个图存在一笔画,则一笔画的路径叫做欧拉路,如果最后又回到起点,那这个路径叫做欧拉回路. 奇点:跟这个点相邻的边数目有奇数个的点 不存在奇数个奇点的 ...

  6. Linux:command not found

    最近老是遇到command not found 这个问题,然后就上网查到什么文件底下export什么变量啊.后来次数多了,发现不对劲.后来上网查了一下,原来切换到root用户要使用su -,而不是su ...

  7. 给eclipse设置自动补全的步骤

    按照如下步骤:window—>preferences—>java—>editor—>content assist—>然后找到如下图所示的输入框,然后输入如下的字母:.qw ...

  8. Linux 系统TCP连接内存大小限制 调优

    系统TCP连接内存大小限制 TCP的每一个连接请求,读写都需要占用系统内存资源,可根据系统配置,对TCP连接数,内存大小,限制调优. 查看系统内存资源 记录内存 详情:cat /proc/meminf ...

  9. 绘制COCO数据集结果

    import os import time import datetime import mmcv import cv2 as cv import json import numpy as np im ...

  10. linux --- 8. mysql数据库,redis 数据库

    一. mysql 数据库 1.安装方式 ①yum安装 ②源代码编译安装 ③rpm包安装 yum安装的前提条件,是准备好yum源,可以选择163源,清华源,阿里云源,等等等 .安装mariadb的yum ...