相关疑难解决方法(0)

在Swift中生成随机的字母数字字符串

如何在Swift中生成随机字母数字字符串?

string swift

186
推荐指数
13
解决办法
7万
查看次数

从UIFont或.ttf文件中获取每个char(带形状)字体

我没有确切的想法是否有可能我也确实试图找到我的问题的解决方案,但没有成功,这就是为什么我在这里问,并希望我会得到解决方案.

我正在开发一个绘图相关的应用程序,我想在其中获得由.ttf文件或提供的每种字体的形状UIFont.

对于Ex.

如果我有UIFont/.TTF文件例如像"OpenSans-Italic"那么如何才能让每一个"字符"与它的形状(这里"斜体"形状)"OpenSans"字体?我想要这个Char or NSString.

=> @ [@"a",@"b",@"c",@"d",... @"A",@"B",@"C",@"D",.... .@"1",@"2",@"3"....]; //这是char数组,仅用于理解目的.

请建议我,我怎么能得到这个?

fonts cocoa-touch objective-c ios

9
推荐指数
1
解决办法
676
查看次数

如何在目标c中打印characterSet?

我正在使用GNUstep shell编程objective-c.我能够将字符串转换为字符集.但无法在控制台中打印转换后的字符集.请告诉我一种打印方式.提前致谢.

objective-c nscharacterset

8
推荐指数
1
解决办法
7147
查看次数

为什么两个不重叠的CharacterSets的交集是非空的?

我试图使用CharacterSet来检查用户输入字符串是否包含任何非十进制数字字符.我使用CharacterSet.decimalDigits并与用户输入的交集.如果此交叉点为空,则可能意味着用户未输入有效输入.但十字路口并非空洞.

let digits = CharacterSet.decimalDigits
let letters = CharacterSet(charactersIn: "abcd") // never prints

let intersection = digits.intersection(letters)
for c in "abcd".characters {
    if intersection.contains(UnicodeScalar(String(c))!) {
        print("contains \(c)") // never prints
    }
}

for i in 0...9 {
    if intersection.contains(UnicodeScalar(String(i))!) {
        print("contains \(i)")
    }
}

print("intersection is empty: \(intersection.isEmpty)") // prints false
Run Code Online (Sandbox Code Playgroud)

我甚至尝试循环遍历所有unicode标量来测试成员身份,并且不会打印任何内容.

for i in 0x0000...0xFFFF {
    guard let c = UnicodeScalar(i) else {
        continue
    }
    if intersection.contains(c) {
        print("contains \(c)")
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么集合非空?

注意使用let digits …

swift swift3

5
推荐指数
1
解决办法
154
查看次数

CharacterSet 和 CharacterSet.inverted 打印出来的一样

我只是想知道 Swift 中的(倒置) CharacterSet 是如何工作的。

假设我有以下两个字符集:

let invertedNumbers = CharacterSet(charactersIn: "0123456789").inverted
let numbers = CharacterSet(charactersIn: "0123456789")
Run Code Online (Sandbox Code Playgroud)

当我使用打印功能记录两个字符集时

print(numbers) 
Run Code Online (Sandbox Code Playgroud)

它在控制台中显示与

print(invertedNumbers)
Run Code Online (Sandbox Code Playgroud)

那就是

<CFCharacterSet Items(U+0030 U+0031 U+0032 U+0033 U+0034 U+0035 U+0036 U+0037 U+0038 U+0039)>
Run Code Online (Sandbox Code Playgroud)

但它们怎么可能完全一样呢?我很困惑,因为他们不是真的。当我问倒置的是否包含“a”时,它说true。另一方面,未倒置的说false。我喜欢它的工作方式,但是倒转的记录不是有问题吗?

xcode cocoa swift swift4.2

5
推荐指数
1
解决办法
490
查看次数

奇怪的String.unicodeScalars和CharacterSet行为

我正在尝试使用Swift 3 CharacterSet来过滤字符,String但是我很早就陷入了困境.CharacterSet有一个名为的方法contains

func包含(_ member:UnicodeScalar) - > Bool
测试CharacterSet中特定UnicodeScalar的成员资格.

但测试这不会产生预期的行为.

let characterSet = CharacterSet.capitalizedLetters

let capitalAString = "A"

if let capitalA = capitalAString.unicodeScalars.first {
    print("Capital A is \(characterSet.contains(capitalA) ? "" : "not ")in the group of capital letters")
} else {
    print("Couldn't get the first element of capitalAString's unicode scalars")
}
Run Code Online (Sandbox Code Playgroud)

我已经到了Capital A is not in the group of capital letters,我期待相反的事情.

非常感谢.

swift

4
推荐指数
1
解决办法
491
查看次数

查看NSCharacterSet(Swift)中的字符

当我试图在这样的NSCharacterSet中列出字符时

print(NSCharacterSet.URLQueryAllowedCharacterSet())
Run Code Online (Sandbox Code Playgroud)

它不打印字符,而是类似的东西

<__ NSCFCharacterSet:0x1759b900>

swift swift2

3
推荐指数
1
解决办法
3428
查看次数

从字体中获取所有可用字符

我正在 Swift 3 中开发一个 iOS 应用程序。在这个应用程序中,我列出了所有可用的字体(系统提供),但我也想列出所有可用的字符。

例如,我使用 Font Awesome 并且我希望用户能够从列表中选择任何字符/符号。我怎样才能做到这一点?

这就是我获得字体数组的方式。如何获取所选字体的所有字符的数组?

UIFont.familyNames.map({ UIFont.fontNames(forFamilyName: $0)}).reduce([]) { $0 + $1 }
Run Code Online (Sandbox Code Playgroud)

fonts swift

3
推荐指数
1
解决办法
1198
查看次数

是否有任何合理的方法来访问 CharacterSet 的内容?

对于随机字符串生成器,我认为将其CharacterSet用作要使用的字母表的输入类型会很好,因为诸如此类的预定义集CharacterSet.lowercaseLetters显然很有用(即使它们可能包含比您预期的更多样化的字符集) .

但是,显然您只能查询字符集的成员资格,而不能枚举,更不用说索引它们了。我们得到的只是_.bitmapRepresentation8kb 的数据块,每个 (?) 字符都有一个指示位。但是,即使您按索引剥离单个位i(这不太好,通过面向字节的Data),Character(UnicodeScalar(i))也不会给出正确的字母。这意味着格式有些晦涩——当然,它没有记录在案

当然,我们可以迭代所有字符(每个平面),但这是一个坏主意,成本方面:20 个字符集可能需要迭代数万个字符。用 CS 术语来说:位向量是稀疏集的(非常)糟糕的实现。为什么他们选择在这里以这种方式进行权衡,我不知道。

我在这里遗漏了什么,或者CharacterSet只是FoundationAPI 中的另一个死胡同?

character foundation data-structures swift

3
推荐指数
3
解决办法
1005
查看次数

如何打印CharacterSet.decimalDigits的内容?

我尝试打印内容CharacterSet.decimalDigits

print(CharacterSet.decimalDigits)
Run Code Online (Sandbox Code Playgroud)

输出:CFCharacterSet 预定义十进制数字集

但我的期望是这样的:

[1,2,3,4...]

所以我的问题是:如何打印 的内容CharacterSet.decimalDigits

swift character-set

2
推荐指数
1
解决办法
3089
查看次数

字符串插值和字符串连接之间的区别

当专门处理非可选String值时,字符串插值和字符串连接之间有什么区别?

struct MyModel {
    let value1: String
    let value2: String
    var displayNameByConcatenation: String {
        return value1 + "-" + value2
    }
    var displayNameByInterpolation: String {
        return "\(value1)-\(value2)"
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 是否会出现displayNameByConcatenationdisplayNameByInterpolation不同的情况?就像长 unicode 字符串一样?
  • 是否有可能以某种方式覆盖运算符的行为+或插值的行为以使它们在上面的示例中有所不同?
  • 一个比另一个更快/更慢吗?

请注意,从这个问题中我们了解到字符串插值将使用descriptionCustomStringConvertible 的 。但是String串联(运算符+)也调用吗description

string string-concatenation string-interpolation swift swift3

1
推荐指数
1
解决办法
6797
查看次数