カスタムデータソースオブジェクトが正しく作成されない

マシューハラット

私は現在ShinobiChartsを実験しており、これを行うための新しいプロジェクトを作成しました。

データソースプロトコルに準拠するカスタムイニシャライザーを持つオブジェクトがあります。

import ShinobiCharts
import UIKit

class GraphDataSource: NSObject, SChartDatasource {

    let data: [Double]

    /* Initialisation Methods */
    init(data: [Double]) {
        self.data = data
    }

    /* SChartDatasource Methods */
    func numberOfSeries(in chart: ShinobiChart) -> Int {
        return 1
    }

    func sChart(_ chart: ShinobiChart, seriesAt index: Int) -> SChartSeries {
        return SChartColumnSeries()
    }

    func sChart(_ chart: ShinobiChart, numberOfDataPointsForSeriesAt seriesIndex: Int) -> Int {
        return data.count
    }

    func sChart(_ chart: ShinobiChart, dataPointAt dataIndex: Int, forSeriesAt seriesIndex: Int) -> SChartData {
        return dataPoint(forDataIndex: dataIndex)
    }

    func dataPoint(forDataIndex dataIndex: Int) -> SChartData {
        return SChartDataPoint(xValue: dataIndex, yValue: data[dataIndex])
    }

}

次に、このオブジェクトのインスタンスをグラフのデータソースとして割り当てます。

let data: [Double] = [0, 0, 0, 0, 0, 0, 10, 10, 30, 50, 100, 100, 80, 40, 30, 50, 40, 70, 20, 10, 10, 10, 0, 0]

...

let dataSource = DayGraphDataSource(data: data)

chart.datasource = dataSource

しかし、これはという不満を、クラッシュにアプリを起こす-[<classname> numberOfSeriesInSChart:]: unrecognized selector sent to instanceところ、<classname>一見任意のクラス名である可能性があります。私はそれを見てきました__NSCFNumberし、NSISRestrictedToZeroMarkerVariable他の人の間で-アプリの新規インストールに変更するようです。

ただし、チャート上のデータソースを実際にこのカスタムオブジェクトに設定する行にブレークポイントを設定し、作成したインスタンスを出力してから実行を続行すると、アプリは完全に正常に実行されます。

ビューコントローラ自体をデータソースとして使用し、まったく同じデータソース実装を使用した場合、すべてが期待どおりに機能しました。

スバーンストーン

ビューコントローラ自体をデータソースとして使用し、まったく同じデータソース実装を使用した場合、すべてが期待どおりに機能しました。

これは、データソースインスタンスの割り当てが早期に解除されていることを示しているようです。

グラフはそのデータソースへの弱い参照しか保持していないため、何かがそれを確実に回避する必要があります。データソースをプロパティに割り当てることで、チャートのライフサイクル全体にわたってデータソースが存続していることを確認できますか?

class ViewController: UIViewController {
    var dataSource: DayGraphDataSource?

    override func viewDidLoad() {
          // chart setup code
          dataSource = DayGraphDataSource(data: data)
          chart.datasource = dataSource
    } 
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

カスタムビットマップオブジェクトがPictureBoxに正しく表示されない

分類Dev

オブジェクトが回転しているときに、オブジェクトのカスタムシェーダーが正しくない

分類Dev

Laraveljsonの応答にカスタムオブジェクトデータが表示されない

分類Dev

フォームデータのオブジェクトが正しく処理されていません

分類Dev

スキーマ比較-ソースモデルの作成中に予期しない例外がキャッチされました:オブジェクト参照がインスタンスオブジェクトに設定されていません

分類Dev

iOSコアデータ:オブジェクトがデータソースから削除されていることを確認してください

分類Dev

データバインディング:カスタムオブジェクトのObservableFieldが正しく機能していません

分類Dev

Unityコンストラクターオブジェクトが正しく設定されていません

分類Dev

あまりにも多くのカスタムオブジェクトを作成しないでください

分類Dev

フォームからデータを投稿した後、djangoオブジェクトが作成されない

分類Dev

JSON配列をカスタムデータ型オブジェクトとして正しく解析する

分類Dev

スタックからスタックへのオブジェクトの転送が正しくコピーされない

分類Dev

カスタムオブジェクトを使用したKerasload_modelが正しく機能しない

分類Dev

JQueryデータテーブルオブジェクトデータソースが機能しない

分類Dev

Netty オブジェクト エコーの例サーバーの channelRead メソッドがカスタム オブジェクトで機能しない

分類Dev

ブーストスレッドが参照によって渡されたローカルオブジェクトにデータを入力しない

分類Dev

Javascript:オブジェクト定義(クラスなど)から新しいカスタムインスタンスを正しく作成する方法

分類Dev

ソートされたリストにカスタムオブジェクトを挿入します

分類Dev

ネストされたオブジェクトフィールドに対してカスタムアノテーションが機能しない

分類Dev

カスタムビューが正しく表示されない

分類Dev

javascriptクラスのカスタムオブジェクトラボが正しく実行されていません

分類Dev

Javaのカスタムオブジェクト戻りタイプに対してSOAPWebサービスが公開されない

分類Dev

カスタムVDMオブジェクトにゲッターメソッドがない

分類Dev

データリーダーは、オブジェクトからデータが抽出されるときに、オブジェクトのインスタンスに設定されていないオブジェクト参照を提供します

分類Dev

アカウント作成ページのパスワードがデータベースに正しく保存されていない

分類Dev

特定の長さのオブジェクトの配列を作成する関数を作成するにはどうすればよいですか?オブジェクトにはカスタム生成されたデータがあります

分類Dev

SQLServerオブジェクトエクスプローラーにデータベースが表示されない

分類Dev

JUNIT取得したカスタムオブジェクトがassertthatでソートされていることを確認する方法

分類Dev

スーパータイプメソッドを呼び出すと、新しいスーパータイプオブジェクトが作成されますか?

Related 関連記事

  1. 1

    カスタムビットマップオブジェクトがPictureBoxに正しく表示されない

  2. 2

    オブジェクトが回転しているときに、オブジェクトのカスタムシェーダーが正しくない

  3. 3

    Laraveljsonの応答にカスタムオブジェクトデータが表示されない

  4. 4

    フォームデータのオブジェクトが正しく処理されていません

  5. 5

    スキーマ比較-ソースモデルの作成中に予期しない例外がキャッチされました:オブジェクト参照がインスタンスオブジェクトに設定されていません

  6. 6

    iOSコアデータ:オブジェクトがデータソースから削除されていることを確認してください

  7. 7

    データバインディング:カスタムオブジェクトのObservableFieldが正しく機能していません

  8. 8

    Unityコンストラクターオブジェクトが正しく設定されていません

  9. 9

    あまりにも多くのカスタムオブジェクトを作成しないでください

  10. 10

    フォームからデータを投稿した後、djangoオブジェクトが作成されない

  11. 11

    JSON配列をカスタムデータ型オブジェクトとして正しく解析する

  12. 12

    スタックからスタックへのオブジェクトの転送が正しくコピーされない

  13. 13

    カスタムオブジェクトを使用したKerasload_modelが正しく機能しない

  14. 14

    JQueryデータテーブルオブジェクトデータソースが機能しない

  15. 15

    Netty オブジェクト エコーの例サーバーの channelRead メソッドがカスタム オブジェクトで機能しない

  16. 16

    ブーストスレッドが参照によって渡されたローカルオブジェクトにデータを入力しない

  17. 17

    Javascript:オブジェクト定義(クラスなど)から新しいカスタムインスタンスを正しく作成する方法

  18. 18

    ソートされたリストにカスタムオブジェクトを挿入します

  19. 19

    ネストされたオブジェクトフィールドに対してカスタムアノテーションが機能しない

  20. 20

    カスタムビューが正しく表示されない

  21. 21

    javascriptクラスのカスタムオブジェクトラボが正しく実行されていません

  22. 22

    Javaのカスタムオブジェクト戻りタイプに対してSOAPWebサービスが公開されない

  23. 23

    カスタムVDMオブジェクトにゲッターメソッドがない

  24. 24

    データリーダーは、オブジェクトからデータが抽出されるときに、オブジェクトのインスタンスに設定されていないオブジェクト参照を提供します

  25. 25

    アカウント作成ページのパスワードがデータベースに正しく保存されていない

  26. 26

    特定の長さのオブジェクトの配列を作成する関数を作成するにはどうすればよいですか?オブジェクトにはカスタム生成されたデータがあります

  27. 27

    SQLServerオブジェクトエクスプローラーにデータベースが表示されない

  28. 28

    JUNIT取得したカスタムオブジェクトがassertthatでソートされていることを確認する方法

  29. 29

    スーパータイプメソッドを呼び出すと、新しいスーパータイプオブジェクトが作成されますか?

ホットタグ

アーカイブ