CRToast
CRToast copied to clipboard
kCRToastTimeIntervalKey issue with Xcode 8.1 swift 3
I have this error in the log [CRToast] : ERROR given 0.4 for key kCRToastTimeIntervalKey was expecting Class __NSCFNumber but got Class _SwiftTypePreservingNSNumber, passing default on instead
also ERROR given 1 for key kCRToastTextAlignmentKey was expecting Class __NSCFNumber but got Class _SwiftTypePreservingNSNumber, passing default on instead
fixed by setting
kCRToastTimeIntervalKey : NSNumber(value: 0.4),
kCRToastTextAlignmentKey : NSNumber(value: NSTextAlignment.center.rawValue),
but when appear the notification the whole ui flashes
Noticed same error in log, but proposed fix was not worked for me.
Actually, problem exists because ObjC and Swift internally use different private subclasses of NSNumber
class cluster. Proper solution would be opening CRToastConfig.m and changing kCRToastKeyClassMap
initialization: instead of extracting classes from default values, which are actually private subclasses of NSNumber
, use NSNumber
itself. This way, class comparison is done in right way and these warnings disappear.
Fixed for me by altering the line as such:
} else if (![obj isKindOfClass:NSClassFromString(kCRToastKeyClassMap[key])] && ![NSStringFromClass([obj class]) containsString:@"Number"]) {
i fix it like this :
let options = [kCRToastTextKey:"Hello World!",kCRToastTextAlignmentKey:NSNumber(value: NSTextAlignment.center.rawValue),kCRToastBackgroundColorKey:UIColor.black,kCRToastAnimationInTypeKey:NSNumber(value:CRToastAnimationType.gravity.rawValue),kCRToastAnimationOutTypeKey:NSNumber(value:CRToastAnimationType.gravity.rawValue),kCRToastAnimationInDirectionKey:NSNumber(value:CRToastAnimationDirection.left.rawValue),kCRToastAnimationOutDirectionKey:NSNumber(value:CRToastAnimationDirection.right.rawValue),kCRToastTimeIntervalKey:NSNumber(value:10.0)] as [String : Any]