Working with NSNumber & Integer values in Swift 3

前端 未结 5 1599
星月不相逢
星月不相逢 2021-01-03 17:54

I am trying to convert my project to Swift 3.0 however I am having two error messages when working with NSNumber and Integers.

5条回答
  •  不知归路
    2021-01-03 18:21

    Before Swift 3, many types were automatically "bridged" to an instance of some NSObject subclass where necessary, such as String to NSString, or Int, Float, ... to NSNumber.

    As of Swift 3 you have to make that conversion explicit:

    var currentIndex = 0
    for item in self.selectedFolder.arrayOfTasks {
       item.index = currentIndex as NSNumber // <--
       currentIndex += 1
    }
    

    Alternatively, use the option "Use scalar properties for primitive data types" when creating the NSManagedObject subclass, then the property has some integer type instead of NSNumber, so that you can get and set it without conversion.

提交回复
热议问题