Good afternoon!
Please help. He did play on Xcode 7.3, everything was fine! But the transition to a new Xcode 8 and Swift 3, an error occurs. I can not understand!
It has been SWIFT 2
let levelPlist = NSBundle.mainBundle().pathForResource("Level01", ofType: "plist")
let levelData = NSDictionary(contentsOfFile: levelPlist!)!
endLevelY = levelData["EndY"]!.integerValue!
let platforms = levelData["Platforms"] as! NSDictionary
let platformPatterns = platforms["Patterns"] as! NSDictionary
let platformPositions = platforms["Positions"] as! [NSDictionary]
for platformPosition in platformPositions {
let patternX = platformPosition["x"]?.floatValue
let patternY = platformPosition["y"]?.floatValue
let pattern = platformPosition["pattern"] as! NSString
let platformPattern = platformPatterns[pattern] as! [NSDictionary]
for platformPoint in platformPattern {
let x = platformPoint["x"]?.floatValue
let y = platformPoint["y"]?.floatValue
let type = PlatformType(rawValue: platformPoint["type"]!.integerValue)
let positionX = CGFloat(x! + patternX!)
let positionY = CGFloat(y! + patternY!)
let platformNode = createPlatformAtPosition(CGPoint(x: positionX, y: positionY), ofType: type!)
foregroundNode.addChild(platformNode)
}
}
let stars = levelData["Stars"] as! NSDictionary
let starPatterns = stars["Patterns"] as! NSDictionary
let starPositions = stars["Positions"] as! [NSDictionary]
for starPosition in starPositions {
let patternX = starPosition["x"]?.floatValue
let patternY = starPosition["y"]?.floatValue
let pattern = starPosition["pattern"] as! NSString
let starPattern = starPatterns[pattern] as! [NSDictionary]
for starPoint in starPattern {
let x = starPoint["x"]?.floatValue
let y = starPoint["y"]?.floatValue
let type = StarType(rawValue: starPoint["type"]!.integerValue)
let positionX = CGFloat(x! + patternX!)
let positionY = CGFloat(y! + patternY!)
let starNode = createStarAtPosition(CGPoint(x: positionX, y: positionY), ofType: type!)
foregroundNode.addChild(starNode)
}
}
It became SWIFT 3
if GameState.sharedInstance.nlevel == 1 {
let levelPlist = Bundle.main.path(forResource: "Level01", ofType: "plist")
let levelData = NSDictionary(contentsOfFile: levelPlist!)!
endLevelY = (levelData["EndY"]! as AnyObject).intValue!
let platforms = levelData["Platforms"] as! NSDictionary
let platformPatterns = platforms["Patterns"] as! NSDictionary
let platformPositions = platforms["Positions"] as! [NSDictionary]
for platformPosition in platformPositions {
let patternX = (platformPosition["x"] as AnyObject).floatValue
let patternY = (platformPosition["y"] as AnyObject).floatValue
let pattern = platformPosition["pattern"] as! NSString
let platformPattern = platformPatterns[pattern] as! [NSDictionary]
for platformPoint in platformPattern {
let x = (platformPoint["x"] as AnyObject).floatValue
let y = (platformPoint["y"] as AnyObject).floatValue
let type = PlatformType(rawValue: (platformPoint["type"]! as AnyObject).intValue)
let positionX = CGFloat(x! + patternX!)
let positionY = CGFloat(y! + patternY!)
let platformNode = createPlatformAtPosition(CGPoint(x: positionX, y: positionY), ofType: type!)
foregroundNode.addChild(platformNode)
}
}
let stars = levelData["Stars"] as! NSDictionary
let starPatterns = stars["Patterns"] as! NSDictionary
let starPositions = stars["Positions"] as! [NSDictionary]
for starPosition in starPositions {
let patternX = (starPosition["x"] as AnyObject).floatValue
let patternY = (starPosition["y"] as AnyObject).floatValue
let pattern = starPosition["pattern"] as! NSString
let starPattern = starPatterns[pattern] as! [NSDictionary]
for starPoint in starPattern {
let x = (starPoint["x"] as AnyObject).floatValue
let y = (starPoint["y"] as AnyObject).floatValue
let type = StarType(rawValue: (starPoint["type"]! as AnyObject).intValue)
let positionX = CGFloat(x! + patternX!)
let positionY = CGFloat(y! + patternY!)
let starNode = createStarAtPosition(CGPoint(x: positionX, y: positionY), ofType: type!)
foregroundNode.addChild(starNode)
}
}
Gives an error message
2016-09-17 09:18:18.211268 Little story[1940:567262] [DYMTLInitPlatform] platform initialization successful
2016-09-17 09:19:14.530467 Little story[1940:567195] Metal GPU Frame Capture Enabled
2016-09-17 09:19:14.531981 Little story[1940:567195] Metal API Validation Enabled
fatal error: unexpectedly found nil while unwrapping an Optional value
2016-09-17 09:19:15.012275 Little story[1940:567195] fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb)