转换为 Swift 2
Convert to Swift 2
Objective-C 代码试图转换为 Swift 2:
-(void)dataLoadMethod
{
//NSLog(@"data load method is displaying")
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH.mm"];
NSString *strCurrentTime = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"Check float value: %.2f",[strCurrentTime floatValue]);
if ([strCurrentTime floatValue] >= 18.00 || [strCurrentTime floatValue] <= 6.00){
UINavigationController *navigationController = (UINavigationController *)[self.storyboard instantiateViewControllerWithIdentifier:@"NightSkin"];
[self presentViewController:navigationController animated:YES completion:nil];
}else{
UINavigationController *navigationController = (UINavigationController *)[self.storyboard instantiateViewControllerWithIdentifier:@"DaySkin"];
[self presentViewController:navigationController animated:YES completion:nil];
dispatch_async(dispatch_get_main_queue(), ^{
});
这是我目前在 Swift 中的代码:
func loadCreate() {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "hh:mm"
dateFormatter.dateStyle = .ShortStyle
var strCurrentTime = dateFormatter.stringFromDate(NSDate())
print(dateFormatter.stringFromDate(NSDate()))
NSLog("Check float value: %.2f", strCurrentTime)
if ([strCurrentTime Float] >= 18.00 || [strCurrentTime Float] <= 6.00) {
NSBundle.mainBundle().loadNibNamed("DaySkin", owner: self, options: nil)
self.addSubview(self.view);
}
else {
NSBundle.mainBundle().loadNibNamed("NightSkin", owner: self, options: nil)
self.addSubview(self.view);
}
}
if 语句有问题;用 double 分配 floatValue 并呈现 ViewController.
任何帮助是极大的赞赏。
您的代码转换 strCurrentTime
不正确,出于某种原因,您将呈现视图控制器更改为仅将视图添加为子视图。
这是正确转换的代码:
func someFunc() {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH.mm"
let strCurrentTime = dateFormatter.stringFromDate(NSDate())
NSLog("Check float value: %.2f", CFloat(strCurrentTime)!)
if CFloat(strCurrentTime)! >= 18.00 || CFloat(strCurrentTime)! <= 6.00 {
let navigationController: UINavigationController = (self.storyboard!.instantiateViewControllerWithIdentifier("NightSkin") as! UINavigationController)
self.presentViewController(navigationController, animated: true, completion: { _ in })
} else {
let navigationController: UINavigationController = (self.storyboard!.instantiateViewControllerWithIdentifier("DaySkin") as! UINavigationController)
self.presentViewController(navigationController, animated: true, completion: { _ in })
}
}
当您没有计划覆盖或重新初始化您的变量时,您也应该使用 let
而不是 var
。
Objective-C 代码试图转换为 Swift 2:
-(void)dataLoadMethod
{
//NSLog(@"data load method is displaying")
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH.mm"];
NSString *strCurrentTime = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"Check float value: %.2f",[strCurrentTime floatValue]);
if ([strCurrentTime floatValue] >= 18.00 || [strCurrentTime floatValue] <= 6.00){
UINavigationController *navigationController = (UINavigationController *)[self.storyboard instantiateViewControllerWithIdentifier:@"NightSkin"];
[self presentViewController:navigationController animated:YES completion:nil];
}else{
UINavigationController *navigationController = (UINavigationController *)[self.storyboard instantiateViewControllerWithIdentifier:@"DaySkin"];
[self presentViewController:navigationController animated:YES completion:nil];
dispatch_async(dispatch_get_main_queue(), ^{
});
这是我目前在 Swift 中的代码:
func loadCreate() {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "hh:mm"
dateFormatter.dateStyle = .ShortStyle
var strCurrentTime = dateFormatter.stringFromDate(NSDate())
print(dateFormatter.stringFromDate(NSDate()))
NSLog("Check float value: %.2f", strCurrentTime)
if ([strCurrentTime Float] >= 18.00 || [strCurrentTime Float] <= 6.00) {
NSBundle.mainBundle().loadNibNamed("DaySkin", owner: self, options: nil)
self.addSubview(self.view);
}
else {
NSBundle.mainBundle().loadNibNamed("NightSkin", owner: self, options: nil)
self.addSubview(self.view);
}
}
if 语句有问题;用 double 分配 floatValue 并呈现 ViewController.
任何帮助是极大的赞赏。
您的代码转换 strCurrentTime
不正确,出于某种原因,您将呈现视图控制器更改为仅将视图添加为子视图。
这是正确转换的代码:
func someFunc() {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH.mm"
let strCurrentTime = dateFormatter.stringFromDate(NSDate())
NSLog("Check float value: %.2f", CFloat(strCurrentTime)!)
if CFloat(strCurrentTime)! >= 18.00 || CFloat(strCurrentTime)! <= 6.00 {
let navigationController: UINavigationController = (self.storyboard!.instantiateViewControllerWithIdentifier("NightSkin") as! UINavigationController)
self.presentViewController(navigationController, animated: true, completion: { _ in })
} else {
let navigationController: UINavigationController = (self.storyboard!.instantiateViewControllerWithIdentifier("DaySkin") as! UINavigationController)
self.presentViewController(navigationController, animated: true, completion: { _ in })
}
}
当您没有计划覆盖或重新初始化您的变量时,您也应该使用 let
而不是 var
。