zzzwco


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

  • 搜索

Swift 运算符的重载和自定义

发表于 2018-04-11 | 分类于 ios
| 字数统计: 618

1. 运算符的重载

1.1 基本运算符的重载

1
2
3
4
5
6
7
8
9
10
11
func * (lhs: String, rhs: Int) -> String {
var result = lhs
for _ in 1..<rhs {
result += lhs
}
return result
}

let t = "abc"
print(t * 3)
// print "abcabcabc"

如上所示,我们重载了运算符 * 。再看看另一个例子:

1
2
3
struct Vector2D {
var x = 0.0, y = 0.0
}

我们定义了如上的结构体,如果想把两个 Vector2D 类型的实例相加,编译器是会报错的。如果我们重载操作符 + ,就可以实现相加:

1
2
3
4
5
6
7
func + (lhs: Vector2D, rhs: Vector2D) -> Vector2D {
return Vector2D(x: lhs.x + lhs.x, y: rhs.y + rhs.y)
}
let first = Vector2D(x: 1.0, y: 2.0)
let second = Vector2D(x: 3.0, y: 4.0)
print(first + second)
// print "Vector2D(x: 4.0, y: 6.0)"

1.2 泛型运算符

阅读全文 »

CocoaPods 创建公有库命令

发表于 2018-03-19 | 分类于 ios
| 字数统计: 472

1. 注册 CocoaPods 账号

  • 通过终端运行一下命令注册账号:
1
pod trunk register 邮箱地址 用户名 --verbose
  • 然后去邮箱验证一下邮箱地址
  • 注册成功后,可以通过 pod trunk me 查看账号信息和发布过的库

2. 公有库的内容构成

2.1 共享的文件夹

这里存放的是需要共享的内容,也就是别人通过 pod 安装得到的源码,.podspec 文件中的 source_files 指定的就是这个共享文件夹的路径

2.2 LICENSE 文件

如果你的公有库是放在 GitHub 上托管,可以将工程上传以后,直接在网页给工程添加 LICENSE 文件,GitHub 会自动给出开源协议的可选项,一般选择 MIT

阅读全文 »

Swift 编译器提示 TODO 和 FIXME

发表于 2017-11-26 | 分类于 ios
| 字数统计: 96

Build Phases,点击 +,添加 New Run Script Phase,添加如下内容:

1
2
3
TAGS="TODO:|FIXME:"
echo "searching ${SRCROOT} for ${TAGS}"
find "${SRCROOT}" \( -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/"

在代码处添加如下标记:

1
2
// TODO: something to do
// FIXME: fix bug

编译器会自动给出相应的警告,并且可以快速定位到相应的代码处。

Charles 显示乱码问题解决方案

发表于 2017-11-25 | 分类于 trick
| 字数统计: 91

Charles 版本:4.2

  • 安装 Mac 的 cer 证书后,点击 Charles 的 proxy - SSL Proxying Settings - SSL Proxying - Add,Host 填写 * ,Port 填写 443
  • 安装手机上的 CA 证书后,点击 通用 - 关于本机 - 证书信任设置 ,信任对应的证书
  • Charles.app 右键显示包内容,打开 info.plist ,添加 vmoption 字段,设置对应的值为 -Dfile.encoding=UTF-8

Swift编程风格指南

发表于 2017-11-07 | 分类于 ios
| 字数统计: 1,384

1. 命名

使用驼峰式命名法,类、结构体、枚举、协议的首字母应该大写,而方法、变量名首字母则小写。

1
2
3
4
5
6
private let maximumWidgetCount = 100

class WidgetContainer {
var widgetButton: UIButton
let widgetHeightPercentage = 0.85
}
阅读全文 »

Swift 中的一些关键字

发表于 2017-11-07 | 分类于 ios
| 字数统计: 684
  • open:可以在任何地方访问、继承和重写

  • public:可以在任何地方被访问,在其他模块不能被继承和重写

  • internal:默认访问级别,在整个模块内都可以被访问

  • fileprivate:可以在同一个文件内被访问、继承和重写

  • private:只能在本类访问和使用,不包括扩展类

  • fallthrough :Swift 中的 switch 语句可以省略 break,满足条件直接跳出循环。fallthrough 则具有贯穿作用,会继续执行后续的 case,直到碰到 break 或 default 才跳出循环。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    switch integerToDescribe {  
    case 1, 3, 5, 7, 11, 13, 17, 19:
    description += " a prime number, and also";
    fallthrough // 执行到此并不跳出循环,而是继续执行case5
    case 5:
    description += " an integer" // 执行到这一步,跳出循环
    default :
    description += " finished"
    }
阅读全文 »

Swift中的闭包

发表于 2017-10-19 | 分类于 swift
| 字数统计: 1,261

1. 闭包表达式语法

1
2
3
{ (parameters) -> returnType in
statements
}

下面是利用闭包对数组进行反向排序的一个例子:

1
2
3
4
5
6
let names = ["Chris", "Alex", "Ewa", "Barry", "David"]
let reservedNames = names.sorted { (s1: String, s2: String) -> Bool in
return s1 > s2
}
print(reservedNames)
// print "["Ewa", "David", "Chris", "Barry", "Alex"]"
阅读全文 »

iOS疑难杂症

发表于 2017-10-17 | 分类于 ios
| 字数统计: 108

1. The file “Info.plist” couldn’t be opened because there is no such file.

原因: Info.plist 文件找不到了,可能是被删除了或是被移动了。
解决方法:
按照下面的顺序找到 info.plist File ,修改成 info.plist 的实际路径即可。

1
targets -->  Build Settings -->搜索 Info.plist --> Packaging -> info.plist File

2. 只要有改动 Xcode 不停地 building

选择任意一个 Storyboard ,Editor -> Automatically Refresh Views, 关闭这个选项即可。

人与人之间的关系

发表于 2017-10-08 | 分类于 notes
| 字数统计: 367
阅读全文 »

纪录片《从秦始皇到汉武帝》

发表于 2017-09-26 | 分类于 notes
| 字数统计: 891

不知道为啥油管会推荐这部片子给我,难道因为我之前看了《大军师司马懿》?顺便说一句,YouTube是当今世界最懂人的视频网站,它背后的算法总能把你喜欢的视频呈现给你,而且让你沉迷于其中一个接一个的推荐视频。

看到这部片子豆瓣评分8.4分,点进去看,一开始以为是个电视剧,没想到是部颇为值得一看的纪录片。

读书的时候,政史地一直是我的薄弱项。至今我对中国的历史年表还搞不清顺序,我是抱着补充历史知识的念头去看的,也确实收获不少。

阅读全文 »
1…3456
zzzwco

zzzwco

52 日志
11 分类
52 标签
GitHub Weibo Twitter
Creative Commons
© 2017 — 2022 zzzwco
本页点击 次   |  本站总点击 次   |  您是第 位访客   |  
博客全站共44.3k字
0%