Bug? Bad behaviour?


(Maury Markowitz) #1

Check out this line of code:

if parts[2].characters.count > 0 { data["I3"] = Int(parts[2]) }

This worked fine in 2.x, but in 3.0 it complains:

Cannot subscript a value of type 'inout [String]' (aka 'inout Array<String>')

It took me a *long* time before I consider that the error was incorrect and found this trivial solution:

if c > 0 && parts[0].characters.count > 0 { data["I1"] = Int(parts[0]) as NSNumber? }

So, is this a "bug"? The error has nothing to do with indexing, it seems. But maybe I'm wrong?


(Adrian Zubarev) #2

Can you provide more details like what type all of these instances have. It’s hard to follow what exactly you’re doing there.

···

--
Adrian Zubarev
Sent with Airmail

Am 2. Dezember 2016 um 19:28:20, Maury Markowitz via swift-users (swift-users@swift.org) schrieb:

Check out this line of code:

if parts[2].characters.count > 0 { data["I3"] = Int(parts[2]) }

This worked fine in 2.x, but in 3.0 it complains:

Cannot subscript a value of type 'inout [String]' (aka 'inout Array<String>')

It took me a *long* time before I consider that the error was incorrect and found this trivial solution:

if c > 0 && parts[0].characters.count > 0 { data["I1"] = Int(parts[0]) as NSNumber? }

So, is this a "bug"? The error has nothing to do with indexing, it seems. But maybe I'm wrong?
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users


(Zhao Xin) #3

​Implicit converting to `Any` or `AnyObject` is not allowed in Swift 3. You
have to do `as Any` or `as AnyObject` or as you did, `as NSNumber) yourself.

I suggest you read the change log. It really helps a lot.

Zhaoxin​

···

On Sat, Dec 3, 2016 at 2:36 AM, Adrian Zubarev via swift-users < swift-users@swift.org> wrote:

Can you provide more details like what type all of these instances have.
It’s hard to follow what exactly you’re doing there.

--
Adrian Zubarev
Sent with Airmail

Am 2. Dezember 2016 um 19:28:20, Maury Markowitz via swift-users (
swift-users@swift.org) schrieb:

Check out this line of code:

if parts[2].characters.count > 0 { data["I3"] = Int(parts[2]) }

This worked fine in 2.x, but in 3.0 it complains:

Cannot subscript a value of type 'inout [String]' (aka 'inout
Array<String>')

It took me a *long* time before I consider that the error was incorrect
and found this trivial solution:

if c > 0 && parts[0].characters.count > 0 { data["I1"] = Int(parts[0]) as
NSNumber? }

So, is this a "bug"? The error has nothing to do with indexing, it seems.
But maybe I'm wrong?
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users