1, Swift 修改导航栏颜色

self.navigationController?.navigationBar.barTintColor

2, Swift button

属性设置时直接进行初始化

var leftButton : UIButton = UIButton(type: UIButtonType.Custom)

由于是read-only属性, 所以不可以后修改, 直接在初始化的时候设置.

Type不推荐用system, 会自动渲染成蓝色.

button添加触发方法只需要在action参数中, 直接写出方法名的字符串即可, 好明显的函数指针既视感.

3, Swift的Bool类型

还是一贯的不允许隐式转换, 所以不可以在OC中0, 1或者直接判断对象存在即为真, 而是要通过逻辑判断, 比如 && || == 这种运算符得到Bool类型的返回值

4, 可选类型(Optional)

对于不确定是否存在的参数类型, 抑或是对象类型, 要加?, 代表不确定是否为空, 在确定不为空的情况下用!.

5, 显示转换

决不允许隐式转换, 语法都过不去的, 所以对于一些特定情况, 比如for var i = 0; i < n ; ++i循环生成图片, 在frame设置中, 一定要转换成CGFloat(), 再就是要用++i, 而不是i++.

6, 结构体类型对象

所有的结构体类型对象都有自带的实例方法, 而不见得非要使用CGRectMake()这种, 直接CGRect(就会索引出实例的构造方法了.

7, 结构体是值类型, 类对象是引用类型

值类型, 引用类型不多解释, 了解面向对象语言的同学都知道, Swift中的主要的数据类型都是结构体, 比如Int, Array, Dictionary等等.

8, init方法继承重写

不要忘记关键字(override), 先进行父类方法初始化, 不需要返回对象了, 同时也别忘记init?(coder aDecoder: NSCoder)方法, 否则会报错的

9, 成员变量

成员变量设置的时候, 实际就已经进行过初始化了, 所以并不需要在代码中再次进行初始化, 直接设置属性即可. 这个和OC中的属性有点差别.

10, collectionView作为成员变量

在声明成员变量的时候必要要写完整的实例化方法, frame和flowLayout的设置在代码中重新设置, 否则会内存出错, 提示没有flowLayout.

11, Swift注释的方法

// /**/ 条注释 块注释都支持

/**

*

*

*/ 解释注释也支持

再就是在OC中的#pragma mark

在Swift中变成了// MARK: 要大写

12, 最新更新到了9.3, Swift的语法也有了不少新的更新, 比如摒弃了C中的语法for循环, 自增运算符等等, 取而代之的是for in.

目前简单的遇到这么多, 以后再遇到问题, 再来补充.

iOS开发--Swift 最近项目开发中遇到的一些小问题与解决方法的更多相关文章

  1. springboot项目yml中使用中文注释报错的解决方法1

    启动springboot项目时报错:/application.yml.....这大致就是说application.yml有问题,那么目前我所知道的大致两种情况会报错,第一种是yml格式有问题,要注意缩 ...

  2. PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等

    页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...

  3. idea开发工具下报Set language level to 6-@Override in interfaces的解决方法

    idea开发工具下报Set language level to 6-@Override in interfaces的解决方法 实现接口时报如下错误:Set language level to 6-@O ...

  4. 关于CUDA C 项目中“ error C2059: 语法错误:“<” ”问题的解决方法

    该问题的关键在于理解CUDA项目中C\C++文件需要由c++编译器进行编译,而CUDA C的源文件需要由CUDA的编译器nvcc.exe进行编译. 发生该语法错误的原因是cu文件被C++编译器所编译, ...

  5. ios UITableView中Cell重用机制导致内容重复解决方法

    UITableView继承自UIScrollview,是苹果为我们封装好的一个基于scroll的控件.上面主要是一个个的 UITableViewCell,可以让UITableViewCell响应一些点 ...

  6. eclipse下修改项目名导致tomcat内发布名不一致的解决方法 .

    eclipse下修改项目名导致tomcat内发布名不一致的解决方法 . ------------------------------------------------------- 解决方案: 直接 ...

  7. eclipse中找不到base64包的解决方法

    eclipse中找不到base64包的解决方法 2017年08月26日 11:05:26 yzp_leo 阅读数:634 标签: javaeclipsebase64更多 个人分类: 日记   ecli ...

  8. Windows中Nginx配置nginx.conf不生效解决方法(路径映射)

    Windows中Nginx配置nginx.conf不生效解决方法 今天在做Nginx项目的时候,要处理一个路径映射问题, location /evaluate/ { proxy_pass http:/ ...

  9. WAMP中phpMyAdmin登陆不了问题的解决方法

    WAMP中phpMyAdmin登陆不了问题的解决方法

随机推荐

  1. 基于HTML5的Web SCADA工控移动应用

    在电力.油田燃气.供水管网等工业自动化领域Web SCADA的概念已经提出了多年,早先年的Web SCADA前端技术大部分还是基于Flex.Silverlight甚至Applet这样的重客户端方案,在 ...

  2. 行列式(三):n阶行列式

    1.数学定义   n阶行列式定义如下: 2.算法实现 函数名: GetValue() 功能:返回一个行列式的值 Private Function GetValue() Dim gValue As Do ...

  3. C#2.0 to 4.0

    //xmlElement.set_InnerText(value); xmlElement.InnerText = value; ).ToCharArray());//Convert.ToChar(s ...

  4. 【转】 Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

    一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...

  5. WebResource.axd 404 错误

    再对程序进行发布的时候,出现以下情况 复制出错误信息: 网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Triden ...

  6. 高德携手阿里云发布“LBS云”,账户打通只是第一步

    位置.游戏.视频,是公认的基于云计算的三大移动端应用方向.而今,LBS云有了更多进展,在高价值应用与云平台之间实现了资源打通和融合,高德迈出了实质性的一步. 高德地图副总裁郄建军(左)与阿里云业务总经 ...

  7. Java--CyclicBarrier同步屏障原理,使用

    package com; import java.util.Map; import java.util.concurrent.BrokenBarrierException; import java.u ...

  8. PHP mongodb AR

    <?php /** * @author xiaojiang */ abstract class MongoAr{ private $db = null; public function __co ...

  9. Node.JS文件系统解析

    1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFile ...

  10. 初识Web 服务(即Web Service)

    一.什么是Web服务 简单来说就是在Internet上提供的这种服务,我们称这种服务为Web服务. 二.Web服务的主要目标? 是支持跨平台的可互操作性. 三.Web服务的优势 四.Web服务提供了一 ...