HName

关于名称字符串的一切。

如果你和我一样,厌倦了使用像这样的名称

    let fullName = "testing abducio medina"
    var components = fullName.components(separatedBy: " ")
    if components.count > 0 {
     let firstName = components.removeFirst()
     let lastName = components.joined(separator: " ")
     debugPrint(firstName)
     debugPrint(lastName)
    } 

那么这个小包就是为你准备的,因为你现在可以这样做了

    let name: HName = "Hady Nourallah"
    debugPrint(name.firstName)    //Hady
    debugPrint(name.LastName)    //Nourallah

用法

let name: HName = "Hady Nourallah" 
let name = "Hady Nourallah" as HName
let name = HName(stringLiteral: String)

对于 Objective-C:不幸的是,我还需要做更多的工作

HName *name = [[HName alloc] initWithStringLiteral:@"Hady Nourallah"];
name.firstName; //Hady
struct Person: Codable {
    let name: HName
    ...
}
    let name: HName = "Mr. Hady Nourallah Sr."
    //you can compare directly between HName and Strings
    print(name == "Mr. Hady Nourallah Sr.")    //true
    print (name.firstName!)                 //Hady
    print (name.lastName!)                     //Nourallah
    print (name.abbrivation!)                 //HN
    print (name.fullName!)                     //Hady Nourallah
    print (name.namePrefix!)                 //Mr.
    print(name.formatted(.default)!)         //Hady Nourallah
    print(name.formatted(.short)!)             //Hady
    print(name.formatted(.medium)!)         //Hady Nourallah
    print(name.formatted(.long)!)             //Mr. Hady Nourallah Sr.