相关疑难解决方法(0)

Swift - 使用哪种类型?NSString或String

随着Swift的推出,我一直试图让我的头脑绕过新语言

我是iOS开发人员,会NSString, NSInteger, NSDictionary在应用程序中使用类型.我注意到在Apple的"The Swift Programming Language"电子书中,他们使用了Swift类型String, Int, Dictionary

我注意到Swift类型没有(或者命名不同)Foundation类型的一些功能.例如NSString有一个length属性.但我无法为Swift找到类似的String.

我想知道,对于iOS应用程序,我还应该使用基础类型吗?

string macos objective-c ios swift

105
推荐指数
7
解决办法
6万
查看次数

在Swift中逐行读取文件/ URL

我正在尝试读取一个给定的文件NSURL并将其加载到一个数组中,其中的项目由换行符分隔\n.

这是我到目前为止的方式:

var possList: NSString? = NSString.stringWithContentsOfURL(filePath.URL) as? NSString
if var list = possList {
    list = list.componentsSeparatedByString("\n") as NSString[]
    return list
}
else {
    //return empty list
}
Run Code Online (Sandbox Code Playgroud)

出于几个原因,我对此并不满意.一,我正在处理从几千字节到几百MB的文件.你可以想象,使用这么大的字符串是缓慢而笨拙的.其次,这会在执行时冻结UI - 再次,不好.

我已经考虑在一个单独的线程中运行此代码,但我一直遇到麻烦,此外,它仍然无法解决处理大字符串的问题.

我想做的是下面的伪代码:

var aStreamReader = new StreamReader(from_file_or_url)
while aStreamReader.hasNextLine == true {
    currentline = aStreamReader.nextLine()
    list.addItem(currentline)
}
Run Code Online (Sandbox Code Playgroud)

我如何在Swift中实现这一目标?

关于我正在阅读的文件的一些注意事项:所有文件都由短或(\n或255个字符)字符串组成,由或者分隔\r\n.文件的长度范围从~100行到超过5000万行.它们可能包含欧洲字符和/或带重音的字符.

macos file input stream swift

72
推荐指数
3
解决办法
4万
查看次数

NSString为空

如何测试NSString是否为空?或所有空格或零?用一个方法调用?

string iphone objective-c nsstring ios

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

Swift 1.2和Swift 2.0中的字符串长度

在以前版本的Swift中,我有以下代码.

func myfunc(mystr: String) {
    if mystr.utf16Count >= 3 {
Run Code Online (Sandbox Code Playgroud)

随着最新版本的Swift 1.2,我现在收到以下错误.

'utf16Count' is unavailable: Take the count of a UTF-16 view instead, i.e. count(str.utf16)
Run Code Online (Sandbox Code Playgroud)

好的,所以我按如下方式更改了我的代码.

func myfunc(mystr: String) {
    if count(mystr.utf16) >= 3 {
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我现在得到以下错误消息.

'(String.UTF16View) -> _' is not identical to 'Int16'
Run Code Online (Sandbox Code Playgroud)

使用Swift 1.2获取字符串长度的正确方法是什么?

string swift

32
推荐指数
4
解决办法
5万
查看次数

如何在macOS上获取Swift3中String的长度

如何String在macOS上获得'Swift3' 的长度?

这曾经在Swift2中工作:

if purchaseDateString.length == 0 {
     purchaseDateString = "n/a"
}
Run Code Online (Sandbox Code Playgroud)

什么是Swift3等价于查找String的长度.

UPDATE

马丁指出,这个问题有答案.提到的问题有30个答案.但是,就我所知,它们都没有专门针对Swift3.我错了..

macos swift swift3

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

如何使用swift设置可以输入UITextField的最大字符数?

如何限制UITextFieldto中的字符数10,如果用户输入的字符数超过10,则只记录前10个字符?

uitextfield swift

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

字符串长度Swift

让我疯狂的一件事就是找到一件简单的事:Swift中的字符串长度.

不,你不能使用string.length

不,你不能使用string.characters.count

不,你不能使用string.count

唯一对我有用的是string.endIndex.然而,这对于简单的textField检查不起作用,例如

func textViewDidChange(textView: UITextView) {
    if textView.text.endIndex > 20 {
        setBorder(descriptionField, finished: true)
    } else {
        setBorder(descriptionField, finished: false)
    }
}
Run Code Online (Sandbox Code Playgroud)

由于endIndex不是Int而且无法转换成.这整件事让我发疯,我不知道该怎么办.任何帮助,将不胜感激!

string string-length uitextfield swift

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