相关疑难解决方法(0)

我可以使用Objective-C块作为属性吗?

是否可以使用标准属性语法将块作为属性?

ARC有什么变化吗?

objective-c ios objective-c-blocks automatic-ref-counting

319
推荐指数
6
解决办法
11万
查看次数

在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万
查看次数

Swift对异步编程有什么语言级支持(如果有的话)?

当应用程序必须通过不可预测的网络(例如智能手机应用程序)进行通信时,异步编程是响应式用户界面的必要条件.用户界面必须保持响应,同时等待结果从互联网上的某些服务器返回.

在大多数语言中,应用程序员必须实现自己的状态机(可能使用闭包)来响应异步回调和/或使用锁协调多个线程.

这两个都非常容易出错,而且不适合那些不满意的人!

(c#引入了async关键字来帮助解决这个问题,只有时间(至少5年)才能判断它是否是一个好的解决方案.)

Swift是否有任何内置支持来协助编写异步代码?

multithreading asynchronous swift

18
推荐指数
2
解决办法
9713
查看次数

如何在swift中声明带参数的块?

很难搞清楚如何使用swift正确声明/使用块.什么是以下代码的快速等价物?

谢谢.

^(PFUser *user, NSError *error) {
if (!user) {
    NSLog(@"Uh oh. The user cancelled the Facebook login.");
} else if (user.isNew) {
    NSLog(@"User signed up and logged in through Facebook!");
} else {
    NSLog(@"User logged in through Facebook!");
}
Run Code Online (Sandbox Code Playgroud)

ios objective-c-blocks swift

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