小编Boi*_*oid的帖子

没有参数的函数在调用错误中缺少参数#1的参数.迅速

我正在使用xcode 6 beta 6,我得到了一个没有参数的函数的奇怪错误.

这是功能

func allStudents ()-> [String]{
    var appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
    var context:NSManagedObjectContext = appDel.managedObjectContext!
    var request = NSFetchRequest(entityName: "Student")
    request.returnsObjectsAsFaults = false
    //Set error to nil for now
    //TODO: Give an actual error.
    var result:NSArray = context.executeFetchRequest(request, error: nil)

    var students:[String]!
    for child in result{
        var fullname:String = child.valueForKey("firstName") as String + " "
        fullname += child.valueForKey("middleName") as String + " "
        fullname += child.valueForKey("lastName") as String
        students.append(fullname)
    }


    return students
}
Run Code Online (Sandbox Code Playgroud)

这是电话

var all …
Run Code Online (Sandbox Code Playgroud)

ios swift xcode6-beta6

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

使用类func vs func vs no class声明的好处

好的,我的项目中有一堆辅助函数,我最初在一个名为Animate的类中.我很想知道声明func vc类func有什么好处.

让我们使用它作为示例类:

class Animate{
    func moveView(...){
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我相信如果我有一个类func,我就不必实例化这个类了.

Animate.moveView(...)

如果我只用func声明函数,它将是:

Animate().moveView(...)

但是,如果我不将该文件声明为类,则:

func moveView(...){
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我调用该函数时,它只是:

moveView(...)
Run Code Online (Sandbox Code Playgroud)

没有指示代码来自哪里,它可以在项目的任何地方使用.

这三种方式的优点和缺点是什么?是不是宣布一个不好的做法?或者,是否有一些边缘情况,这是非常有用的?例如,在我的情况下,我不需要一个类,因为我只是创建辅助函数而不是对象.

提前感谢您对此有任何见解!

swift

11
推荐指数
2
解决办法
3670
查看次数

在AlamoFire(异步)调用中,UIProgressView进度更新非常慢

在AlamoFire获取请求中,我正在尝试更新我的进度条.像这样:

alamofireManager.request(.GET, urlPath, parameters: params).responseJSON{(request,response,JSON,error) in
    ...<code here>...
    dispatch_async(dispatch_get_main_queue(), {
        NSNotificationCenter.defaultCenter().postNotificationName(LoginVCHideSpinnerAndShowProgressBarName as String, object: self)
    })
    ...<more code here>...
}
Run Code Online (Sandbox Code Playgroud)

由于某些原因,这需要几秒钟的时间来执行,如果我使用dispatch_sync该应用程序似乎只是卡在那一点,但UI不会冻结(活动指示器微调器继续).我还想指出,一旦应用程序点击此代码,它就会继续执行代码,就像它已被执行一样.然后在大约6秒后执行它,好像它没有在主线程上被调用一样.

我也只是尝试这样做而不是使用通知.

dispatch_async(dispatch_get_main_queue(), {
    loginVC.progressBar.hidden = false
    loginVC.indicator.hidden = true
    loginVC.progressBar.setProgress(0.1, animated: true)
})
Run Code Online (Sandbox Code Playgroud)

这似乎比通知慢.

我很困惑为什么会发生这种情况,因为我告诉它在主线程中进行更新.我也很困惑为什么通知实际上要快一点.

uiprogressview nsnotification dispatch-async swift alamofire

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