首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >self.filter=[[FilterClass alloc] init];self.filter = FilterClass.self?

self.filter=[[FilterClass alloc] init];self.filter = FilterClass.self?
EN

Stack Overflow用户
提问于 2015-04-21 00:38:11
回答 1查看 108关注 0票数 0

我正在把一些Obj-C转换成Swift,我和一些初始化器有问题。我在不清楚init方法的地方发表了评论。其次,在像这个http://i.imgur.com/AXs0bdo.png这样的地方,我得到了很多“不能用‘int’类型的索引订阅'Double‘类型的值’”的错误。你能帮我清理一下密码吗?提前谢谢。

代码语言:javascript
复制
import UIKit
import Foundation
import AVFoundation


let minFramesForFilterToSettle = 10

enum CurrentState {
case statePaused
case stateSampling
}

class ViewController: UIViewController, AVCaptureVideoDataOutputSampleBufferDelegate {


let session = AVCaptureSession()
var camera : AVCaptureDevice?
var validFrameCounter: Int = 0
var pulseDetector = PulseDetector.self              // Is this initialized correctly?
var filter = Filter.self                            // Is this initialized correctly?
var currentState = CurrentState.stateSampling       // Is this initialized correctly?

override func viewDidLoad() {
    super.viewDidLoad()
    //self.filter = Filter()                        // Do I need this?
    //self.pulseDetector = PulseDetector.self       // Do I need this?
    startCameraCapture() // call to un-used function. TO DO create function
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}



}

let NZEROS = 10
let NPOLES = 10

class Filter {

var xv = [Float](count: NZEROS + 1, repeatedValue: 0)
var yv = [Float](count: NPOLES + 1, repeatedValue: 0)

func processValue(value: Float) -> Float {

    let gain: Float = 1.894427025e+01

    xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = xv[3]; xv[3] = xv[4]; xv[4] = xv[5]; xv[5] = xv[6]; xv[6] = xv[7]; xv[7] = xv[8]; xv[8] = xv[9]; xv[9] = xv[10]; xv[10] = value / gain;
    yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = yv[3]; yv[3] = yv[4]; yv[4] = yv[5]; yv[5] = yv[6]; yv[6] = yv[7]; yv[7] = yv[8]; yv[8] = yv[9]; yv[9] = yv[10];
    yv[10] =   (xv[10] - xv[0]) + 5 * (xv[2] - xv[8]) + 10 * (xv[6] - xv[4])
    + ( -0.0000000000 * yv[0]) + (  0.0357796363 * yv[1])
    + ( -0.1476158522 * yv[2]) + (  0.3992561394 * yv[3])
    + ( -1.1743136181 * yv[4]) + (  2.4692165842 * yv[5])
    + ( -3.3820859632 * yv[6]) + (  3.9628972812 * yv[7])
    + ( -4.3832594900 * yv[8]) + (  3.2101976096 * yv[9]);
    return yv[10];
}

}

let maxPeriod = 1.5
let minPeriod = 0.1
let invalidEntry = -11
let maxPeriodsToStore = 20
let averageSize = 20



class PulseDetector {

var upVals: Float?
var downVals: Float?
var upValIndex: Int?
var downValIndex: Int?
var lastVal: Float?
var periodStart: Float?
var periods: Double?
var periodTimes: Double?
var periodIndex: Int?
var started: Bool?
var freq: Float?
var average: Float?
var wasDown: Bool?


func reset() {


    for var i=0; i < maxPeriodsToStore; i++ {
        periods[i] = invalidEntry // obviously not Swift so how can I fit it?
    }
    for var i=0; i < averageSize; i++ {
        upVals[i] = invalidEntry    // same here
        downVals[i] = invalidEntry  // same here 
    }
    freq = 0.5
    periodIndex = 0
    downValIndex = 0
    upValIndex = 0
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-21 01:03:43

如果你想知道你会如何改变

代码语言:javascript
复制
self.filter=[[FilterClass alloc] init];

对于Swift来说,下面的代码行将是答案

代码语言:javascript
复制
self.filter= FilterClass()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29760867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档