簡體   English   中英

無法從Swift繼承NSInputStream(initWithData:unrecognizer selector)

[英]Failing to subclass NSInputStream from Swift (initWithData: unrecognizer selector)

我似乎無法弄清楚我做錯了產生以下錯誤:

2015-02-02 12:48:17.029 InputStreams[14816:221224] -[InputStreams.CustomStream initWithData:]: unrecognized selector sent to instance 0x7fda2e1aac30

這是我的CustomStream子類。

import Foundation

class CustomStream : NSInputStream {
    let streamName = "My Custom Stream"

    override init(data: NSData) {
        super.init(data: data)
    }
}

以下是我試圖實例化它的一個簡單示例:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let stream = CustomStream(data: NSData())
        println("Stream Name: \(stream.streamName)")
    }
}

任何幫助將不勝感激。

我找到了一個使用convinence init的解決方案。

class CustomStream : NSInputStream {
    let streamName = "My Custom Stream"
    // var data:NSData!        

    convenience override init(data: NSData) {
        self.init()
        // do inialization.
        // self.data = data 
    }

    convenience init() {
        self.init()
    }
}

說實話,我還沒弄清楚它為什么會起作用。我指的是類繼承和初始化以獲取更多信息。如果你對它有任何想法,請發表評論。

還有一件事,使用CFCreateBounderPair而不是子類NSInputStream被認為更安全。我試圖在兩種方式下成功地將ALAsset轉換為NSInputStream 。此處的代碼可用於ALAssetToNSInputStream

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM