Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crash issue in Xcode 10 #23

Open
mouli457 opened this issue Oct 16, 2018 · 5 comments
Open

crash issue in Xcode 10 #23

mouli457 opened this issue Oct 16, 2018 · 5 comments

Comments

@mouli457
Copy link

I updated my Xcode9 to xcode10, My app is crashing when I tap on button.

App is crashing here

assert(bmb.buttonEnum != .unknown, "[BMB] Unknown button enum!")
assert(bmb.piecePlaceEnum.rawValue < PiecePlaceEnum.count, "[BMB] Unknown piece-place-enum!")
assert(bmb.buttonPlaceEnum.rawValue < ButtonPlaceEnum.count, "[BMB] Unknown button-place-enum!")
assert(bmb.boomEnum.rawValue < BoomEnum.count, "[BMB] Unknown boom-enum!")
assert(builders.count > 0, "[BMB] Empty builders!")

@krzysztof-osiecki
Copy link

The problem is in: https://github.com/Nightonke/VHBoomMenuButton/blob/master/VHBoomMenuButtonSwift/BoomMenuButton/Piece/PiecePlaceEnum.swift

public static var count: Int {
    return PiecePlaceEnum.custom.hashValue + 1
}

this method should read:

public static var count: Int {
    return PiecePlaceEnum.custom.rawValue + 1
}

Fix is quick, would be nice to apply it. For now we are forced to use obcj version.

@mouli457
Copy link
Author

I had upload issue in Xcode 9,Can you please resolve issue this issue in Xcode 10

@salvasp
Copy link

salvasp commented Jan 10, 2019

the enums are changed with Swift 4.2
You should completely delete
public static var count: Int
and declare
public enum PiecePlaceEnum: Int, CaseIterable
then use
PiecePlaceEnum.allCases.count
for the count

Note if you have used hash value for the index of the element of the enum:
the hashValue is also changed now is an actual hash calculated consistently with the type. For a String enum you can use something like
enum StringEnum: String, CaseIterable
and inside the enum declare

var ordinal: Int {
           //force unwrap does not give problems because index of self always exist
           //index(of: self) does not shows in Autocomplete, it will suggest firstIndex(of:)
           //for the enum you can use what you prefer
            return StringEnum.allCases.index(of: self)! 
}

then replace . hashValue with .ordinal
I named it ordinal because by convention is so called in Java

and in code
let position: Int = StringEnum.aCase.ordinal
or if you don't prefer to add the variable to the enum
let position: Int = StringEnum.allCases.index(of: StringEnum.aCase)!

PS
There is duplicate case in ButtonPlaceManager
case .vertical, .ham_1, .ham_2, .ham_3, .ham_3, .ham_4, .ham_5, .ham_6:

@AzimJavaidKhan
Copy link

@Nightonke i m also facing this issue!
need help!

@dariolr
Copy link

dariolr commented Mar 6, 2019

try objc pod in your swift project.

pros:
no error, everything works as expected ( swift 4.2, Xcode 10.1 )

cons:
you need to rename all reference class

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants