기능

2012-07-02 4 views
1

내가 다른 함수 내에서 함수를 배치하기 위해 노력하고있어,하지만 난 받고 있어요 :기능

'자기'이 범위에서 선언되지 않았습니다

-(void) alone { 
    label.text = [NSString stringWithFormat:@"Hello world"]; 
} 

void *multithreading(void *ptr) { 
    [self alone]; 
} 
그럼 다음 O 마지막 코드가 변경되는 경우 경고/오류가 사라지고, 발견

:

코드입니다
-(void *) multithreading:(void *)ptr { 
    [self alone]; 
} 

동일한 방식으로 멀티 스레드를 유지하려고하면 다른 코드가 작동하지 않으므로 제발 도와주세요.

+2

C 함수에는 'self'개념이 없습니다. – trojanfoe

+0

그 밖의 무엇을 할 수 있겠습니까? – user1480092

+0

멀티 스레딩은 어떻게 구현 되나요? – trojanfoe

답변

1

c 함수에서 objective-c 변수에 액세스 할 수 없습니다. 매개 변수로 self을 c 함수에 전달해야합니다.

void *multithreading(void *ptr , void *info) {// self in info 
    id obj; 
    if (info) 
    { 
    obj = (id)info; 
    [obj alone]; 
    } 
} 
+0

내가 알기를 원하는 것, 고마워! – user1480092