CUSTOM_VIEWのCLASSを減らすためにディスパッチキューを管理します。 custom_viewインスタンスに格納されているプロパティ/変数に基づいて、custom_viewの値を計算します。が正しく電話加熱iOSの
のViewController CLASS:
私はViewControllerをクラスでcustom_classのインスタンスを作成することによって、いくつかの7〜9ビューの表示。
私のcustom_classは1秒ごとに新しい計算値を表示するので、dispatch_asyncを使用して計算コードを実行しました。 UIスレッドには影響しません。
custom_view.mは
しかしstatic dispatch_queue_t queue;
queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0);
dispatch_async(queue, ^(void)
{
[self calculateViewValue];
});
-(void) calculateViewValue
{
int wait = [self generateRandomNumberWithlowerBound:10 upperBound:20];
for (int i = 0; i<= wait; i++)
{
// value calculation
[[NSOperationQueue mainQueue] addOperationWithBlock:^
{custom_view_instance.text = value;}];
sleep(1);
}
}
、それを実行した後iPhoneは、いくつかの時間後にヒートアップ!! 私は何か間違っている/紛失/それを行うには最良の方法ですか?
こんにちは@ingconti、返信ありがとう:)まあ、あなたが言ったように、私はあなたの計算にはコントローラで行われることに同意しますが、計算はcustom_viewクラスに格納された値になります。例えば。 custom_viewはPROPERTY [HOUSE/BUILDING]を表し、custom_viewの値はプロパティのRATEです。その値はcustom_viewのプロパティ/変数に基づいています。したがって、私はいつもcustom_viewのインスタンスを作成し、値を持つすべての新しいcustom_viewを初期化します。 –
ビューはデータを保持したり、計算したりしてはいけません。データは、モデルまたは計算レイヤのどこかに(実装の詳細に応じて)モデルおよび計算に含める必要があります。 – bbum
ok @bbum、はい私は、今度はやっている計算やデータの保持にビューを使用しないことを好みます。ありがとう:)私は初心者で、私はあなたが指摘し、あなたが指摘したこのような間違いを避け、将来的にはより構造化された実装を行うことを学ぶべきです。 –