【问题标题】:Swift Grammar think you [closed]Swift 语法认为你 [关闭]
【发布时间】:2014-07-26 02:02:50
【问题描述】:

问题一:

Error images.count * 0.05 (images is NSArray),

我想播放动画

代码:

func runAnimationWithCount(count: Int, name :NSString){
    
    var images = NSMutableArray()
    
    for i in 0...count{
        
        var imageName = NSString(format:"%02i", i)
        var filename = "\(name)_\(imageName).jpg"
        
        var bundle = NSBundle.mainBundle()
        var path = bundle.pathForResource(filename, ofType:nil)
        
        var image = UIImage(contentsOfFile: path)
        images.addObject(image)
        
    }
    tom.animationImages = images
    tom.animationRepeatCount = 1
    tom.animationDuration = images.count * 0.05   //Error
    tom.startAnimating()
    var delay = tom.animationDuration
    
    
}

问题2:

如何转换代码(Objective-C -> Swift)

    [self.tom performSelector:
                        @selector(setAnimationImages:) 
                        withObject:nil 
                        afterDelay:delay];

【问题讨论】:

  • 您能否更详细地描述您正在尝试做的事情和尝试过的事情?

标签: ios swift


【解决方案1】:

错误是因为您试图将两个不同类型的值相乘。你不能这样做。将其中一个值转换为另一个值的类型。

您没有发布足够的信息来确定要转换为的正确类型是什么,但我会尝试猜测:Double(images.count) * 0.05

据我所知,第二个问题中的 Objective C 表达式实现了一些在 Swift 中不存在且根本没有意义的东西。你应该努力在类型良好的边界上分离 Objective C 和 Swift 代码。在 Swift 代码中根本不需要这种东西。如果你需要这样做,它必须保持 Objective C,直到你在 Swift 中重新实现相关模块并使用 Swift 抽象和类型来完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-17
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多