NoOptionalInterpolation 4.0.0

NoOptionalInterpolation 4.0.0

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布最后发布2017年10月
SwiftSwift版本4.0
支持SPM支持SPM

Thanh Pham维护。



  • Thanh Pham
'   ____    ___                                                                             
'  |    \  /   \                                                                            
'  |  _  ||     |                                                                           
'  |  |  ||  O  |                                                                           
'  |  |  ||     |                                                                           
'  |  |  ||     |                                                                           
'  |__|__| \___/                                                                            
'                                                                                           
'    ___   ____  ______  ____  ___   ____    ____  _                                        
'   /   \ |    \|      ||    |/   \ |    \  /    || |                                       
'  |     ||  o  )      | |  ||     ||  _  ||  o  || |                                       
'  |  O  ||   _/|_|  |_| |  ||  O  ||  |  ||     || |___                                    
'  |     ||  |    |  |   |  ||     ||  |  ||  _  ||     |                                   
'  |     ||  |    |  |   |  ||     ||  |  ||  |  ||     |                                   
'   \___/ |__|    |__|  |____|\___/ |__|__||__|__||_____|                                   
'                                                                                           
'   ____  ____   ______    ___  ____   ____   ___   _       ____  ______  ____  ___   ____  
'  |    ||    \ |      |  /  _]|    \ |    \ /   \ | |     /    ||      ||    |/   \ |    \ 
'   |  | |  _  ||      | /  [_ |  D  )|  o  )     || |    |  o  ||      | |  ||     ||  _  |
'   |  | |  |  ||_|  |_||    _]|    / |   _/|  O  || |___ |     ||_|  |_| |  ||  O  ||  |  |
'   |  | |  |  |  |  |  |   [_ |    \ |  |  |     ||     ||  _  |  |  |   |  ||     ||  |  |
'   |  | |  |  |  |  |  |     ||  .  \|  |  |     ||     ||  |  |  |  |   |  ||     ||  |  |
'  |____||__|__|  |__|  |_____||__|\_||__|   \___/ |_____||__|__|  |__|  |____|\___/ |__|__|
'

NoOptionalInterpolation







描述

NoOptionalInterpolation消除了Swift字符串插值中的"Optional(...)"和"nil"。这在设置文本到UI元素(如 UILabel 或 UIButton)时尤其有帮助。由于XCode在撰写本指南时,还没有为插值Optional显示任何警告,并且您可能需要更改变量类型(在Optional和非Optional之间),此库确保您设置的文本永远不会包含令人烦恼的附加"Optional(...)"。当需要时,您也可以恢复默认行为。

此外,该库还通过自定义运算符使复数化文本变得更容易。

使用方法

移除"Optional(...)"和"nil":

只需导入NoOptionalInterpolation,然后所有操作都为您完成。

import NoOptionalInterpolation

let n: Int? = 1
let t: String? = nil
let s: String? = "string1"
let o: String?? = "string2"

let i = "\(n) \(t) \(s) \(o)"
print(i) // 1  string1 string2

请注意,这也不会影响 print 函数。因此,print(o)(与print("\(o)"), 上面例中的o)将仍然打印出 Optional(Optional("string2"))。

恢复默认行为:

对于您的 Optional,使用 *运算符。

...
let i = "\(n*) \(t*) \(s*) \(o*)"
print(i) // Optional(1) nil Optional("string1") Optional(Optional("string2"))

复数化:

使用 ~ 运算符复数化单词。

let age = 42
let text = "I am \(age ~ "year") old" // "I am 42 years old" // actually not // for now

使用 / 运算符提供复数形式。

let memberCount = 42
let text = "The team consists of \(memberCount ~ "person" / "people")" // "The team consists of 42 people"

要省略数量,交换数量和单词的位置。

let listenerCount = 42
let text = "Do it \("yourself" / "yourselves" ~ listenerCount)" // "Do it yourselves"

这也适用于 Optional。

let count: Int?? = 42
let fruit: String?? = "apple"
let text = "I have \(count ~ fruit)" // "I have 42 apples"

默认情况下,如果您未使用 / 运算符提供复数形式,则会将 "s" 追加到您的单词以形成复数形式。要使复数化更智能,您可以为指定自定义 PluralizerType。您可以在这里找到一个。

在您的Podfile中

pod 'Pluralize.swift', :git => "https://github.com/joshualat/Pluralize.swift.git"

注意:由于Pluralize.swift pod尚未与Swift 3兼容。

然后

import NoOptionalInterpolation
import Pluralize_swift

extension Pluralize: NoOptionalInterpolation.Pluralizer {}

...
NoOptionalInterpolation.PluralizerType = Pluralize.self
assert(42 ~ "oasis" == "42 oases")

安装

手动安装

/NoOptionalInterpolation/Classes/ 中的所有文件添加到您的项目中。您的操作已完成。

兼容性

从版本3.0.0开始,使用了Swift 3语法。如果您的项目仍在使用Swift的早期版本,请使用3.0.0之前的NoOptionalInterpolation版本。

Podfile

pod 'NoOptionalInterpolation', '~> 2.0.6'

或 Cartfile

github "T-Pham/NoOptionalInterpolation" ~> 2.0.6

许可协议

NoOptionalInterpolation遵循MIT许可协议。有关更多信息,请参阅LICENSE文件。