Xcode 8 Beta 3: Expected ',' Joining Parts of a Multi-Clause Condition

xcode 8 beta 3: Expected ',' joining parts of a multi-clause condition

It seems this feature has been included:

Try this:

if let errorValue = error, errorValue.code == ErrorNotExist {

Expected ',' joining parts of a multi-clause condition

I think you can try to make the second clause in new line (no official document found, so be awared. But can try with it:).

I read this article about the change made in swift 3: https://github.com/apple/swift-evolution/blob/master/proposals/0099-conditionclauses.md

Using where clause in an if statement

This was tweaked as per Proposal SE-0099, Restructuring Condition Clauses, which was implemented in Swift 3.

if let text = textField.text, !text.isEmpty {
celsiusLabel.text = text
else {
celsiusLabel.text = "???"

The if statement is already in itself like a where clause, so they found it more suitable to just require a comma.

Swift 3 unwrap and compare int in if

No need to explicitly unwrap in if let, just this should work

if let movieLength = movie.length, movieLength > 0 {
self.durationLabel.text = "\(movieLength) min"
} else {
self.durationLabel.isHidden = true

You can check the "Optional Binding" in The Basics for right syntax.

if-case pattern matching - Variable binding in a condition requires an initializer

I'm working through Big Nerd Ranch's Swift Programming book (2nd
edition) ...

As mentioned at the official book web page, the book includes Swift Version 3.0 with Xcode 8.

Probably, you are working on Xcode 7.x or earlier, in Swift 2, it should be:

if case 18...35 = age where age >= 21 {
print("In cool demographic and of drinking age")

Swift 3:

if case 18...35 = age, age >= 21 {
print("In cool demographic and of drinking age")

Remark: if the first code snippet has been complied at Xcode 8 playground, it will complain about following compile-time error:

error: expected ',' joining parts of a multi-clause condition

with a suggestion to change where to ,.

The same grammar applied when working -for example- with optional binding:

Swift 2:

if let unwrappedString = optionalString where unwrappedString == "My String" {

Swift 3:

if let unwrappedString = optionalString, unwrappedString == "My String" {

For more information about changing the where to , you might want to check Restructuring Condition Clauses Proposal.

So, make sure to update the used IDE to the latest version (which compiles Swift 3).

Pod spec dependency

Cocoapods doesn't allow users to specify a branch with s.dependency syntax.

The solutions:

  • Ask the author to officially release the swift/3.0 branch
  • Or you can put the following line in the Podfile wherever the private pod is used

    pod 'SwiftState', :git=> 'https://github.com/ReactKit/SwiftState.git', :branch => 'swift/3.0'

Good collection of libraries for C?

Try glib? It's used by GTK+, but it can also be used on other platforms. You can also try Apache APR, which is used by the Apache web server and some of their other C components, or NSPR, which is used by Mozilla projects in C.

Related Topics

Leave a reply