2014-01-21 3 views
3

이 버그입니까? NSMutableArray enumerateObjectsUsingBlock은 Apple이 말한 것처럼 동기가 아닙니다

나는이 라인이이이

"0" 
"1" 
"2" 
... 
"end" 

같은 인쇄해야

[myArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 

    NSLog(@"%d", idx); 
}]; 

NSLog(@"end"); 

을하지만

같이 인쇄됩니다
"end" 
"0" 
"1" 
"2" 
... 

애플은 enumerateObjectsWithOptions:usingBlock: 동기 말한다, 그래서 "끝" 열거 전에 인쇄해서는 안됩니다. 맞습니까?

너희들을 확인할 수 있습니까?

+1

것은 당신이'enumerateObjectsWithOptions을 사용하고 있습니다 : usingBlock를 withOptions, 어떤 옵션을 지정하고 있습니까? – liamnichols

+0

enumerateObjectsusingBlock :이 주문되지 않았기 때문에 (주문마다 전화가 다르기 때문에) 확인을 기다리고 있습니다. – Unheilig

+0

@ L14M333은 중요하지 않습니다. 애플은 동기식이라고 말합니다. BTW 나는 둘 다 시도했다. – SpaceDog

답변

7

enumerateObjectsUsingBlock:은 분명히 동 기적입니다. 당신이 사용하는 경우 ...`:`enumerateObjectsusingBlock를`나 : 난 그냥 CodeRunner에서 같은 예를 실행 :

NSArray *myArray = @[ @1, @2, @3, @4, @5 ]; 
[myArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    NSLog(@"%d", idx); 
}]; 

NSLog(@"end"); 

을 그리고 다음과 같은 출력이있어 :

0 
1 
2 
3 
4 
end 
+2

내 것이 아니기 때문에 지옥처럼 이상합니다 ... – SpaceDog

+1

열거하기 전에 어디에서나 '끝'을 인쇄하지 않습니까? 'enumerateObjectsUsingBlock :'대신'enumerateObjectsWithOptions : usingBlock :'을 사용하고 있습니까? –

+0

nope. END가 열거 후에 인쇄됩니다. 나는 두 가지 방법을 시도했다. 변경 없음. – SpaceDog

2

"0", "1", "2", "끝"으로 예상대로 인쇄 할 수 없습니다. 또한 인덱스를 인쇄하고 있지만 로그가 "1"에서 시작한다는 것을 알아 두십시오.

+0

인쇄가 올바 릅니까? ??????????? 0,1,2 부분을 수정했습니다 ... 그냥 오타입니다. – SpaceDog

+0

예 날 제대로 인쇄하고 있습니다. – Peres

+0

위의 답변을 게시 한 것처럼 테스트 할 수 있습니다 – Sandy

관련 문제