CUSTOM_VIEW의 CLASS 감소 디스패치 큐를 관리한다. custom_view 인스턴스에 저장된 속성/변수를 기반으로 custom_view에서 값을 계산합니다.제대로 전화 가열 아이폰 OS
의 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);
}
}
,이를 실행 한 후 아이폰은 잠시 후 가열! 내가 잘못했거나 누락 된/최선의 방법을하고 있습니까 ???
안녕하세요, @ replyconti, 답장을 보내 주셔서 감사합니다 :) 글쎄, 내가 언급 한대로 그 계산을 컨트롤러에서 할 수 있습니다. 그러나 계산은 custom_view 클래스에 저장된 값으로 만들어집니다. 예 : custom_view는 PROPERTY [집/건물]을 나타내고 custom_view의 값은 속성의 RATE입니다. 그래서 값은 custom_view의 속성/변수를 기반으로합니다. 따라서 필자는 항상 custom_view의 인스턴스를 만들고 값이있는 모든 새 custom_view를 초기화합니다. –
뷰는 데이터를 저장하거나 계산해서는 안됩니다. 데이터는 모델 또는 제어 계층의 어딘가에서 모델 및 계산에 있어야합니다 (구현 세부 사항에 따라 다름). – bbum
ok @bbum, yes 나는 계산을 위해 뷰를 사용하지 않겠다./데이터를 담고있는 데이터는 이번에 할 것이고, 사람들이 강조하는 것처럼 변경 될 것이다. 고마워요. 초보자인데, 내가 언급해야 할 것은/당신이 지적한 그런 실수를 피하고 나중에 더 많은 구조화 된 구현을하는 법을 배워야한다는 것입니다. –