현재 iPhone 용 체스 게임을 제작 중입니다. 보드의 조각은 보드의 사각형에 각각 나타내는 일련의 UIImageViews로 표시되며 해당 사각형에 대해 표시 할 올바른 이미지를 참조합니다. 하나의 사각형이 선택되었고 이동이 이루어졌습니다. function - (void) updateBoard; 'square2'등UIImageView가 업데이트되지 않습니다.
-(void)updateBoard{
NSLog(@"updating board");
[square1 setImage:[UIImage imageNamed:[game imageForSquare:1]]];
[square2 setImage:[UIImage imageNamed:[game imageForSquare:2]]];
[square3 setImage:[UIImage imageNamed:[game imageForSquare:3]]];
[square4 setImage:[UIImage imageNamed:[game imageForSquare:4]]];
[square5 setImage:[UIImage imageNamed:[game imageForSquare:5]]];
[square6 setImage:[UIImage imageNamed:[game imageForSquare:6]]];
[square7 setImage:[UIImage imageNamed:[game imageForSquare:7]]];
[square8 setImage:[UIImage imageNamed:[game imageForSquare:8]]];
[square9 setImage:[UIImage imageNamed:[game imageForSquare:9]]];
[square10 setImage:[UIImage imageNamed:[game imageForSquare:10]]];
[square11 setImage:[UIImage imageNamed:[game imageForSquare:11]]];
[square12 setImage:[UIImage imageNamed:[game imageForSquare:12]]];
[square13 setImage:[UIImage imageNamed:[game imageForSquare:13]]];
[square14 setImage:[UIImage imageNamed:[game imageForSquare:14]]];
[square15 setImage:[UIImage imageNamed:[game imageForSquare:15]]];
[square16 setImage:[UIImage imageNamed:[game imageForSquare:16]]];
[square17 setImage:[UIImage imageNamed:[game imageForSquare:17]]];
[square18 setImage:[UIImage imageNamed:[game imageForSquare:18]]];
[square19 setImage:[UIImage imageNamed:[game imageForSquare:19]]];
[square20 setImage:[UIImage imageNamed:[game imageForSquare:20]]];
[square21 setImage:[UIImage imageNamed:[game imageForSquare:21]]];
[square22 setImage:[UIImage imageNamed:[game imageForSquare:22]]];
[square23 setImage:[UIImage imageNamed:[game imageForSquare:23]]];
[square24 setImage:[UIImage imageNamed:[game imageForSquare:24]]];
[square25 setImage:[UIImage imageNamed:[game imageForSquare:25]]];
[square26 setImage:[UIImage imageNamed:[game imageForSquare:26]]];
[square27 setImage:[UIImage imageNamed:[game imageForSquare:27]]];
[square28 setImage:[UIImage imageNamed:[game imageForSquare:28]]];
[square29 setImage:[UIImage imageNamed:[game imageForSquare:29]]];
[square30 setImage:[UIImage imageNamed:[game imageForSquare:30]]];
[square31 setImage:[UIImage imageNamed:[game imageForSquare:31]]];
[square32 setImage:[UIImage imageNamed:[game imageForSquare:32]]];
[square33 setImage:[UIImage imageNamed:[game imageForSquare:33]]];
[square34 setImage:[UIImage imageNamed:[game imageForSquare:34]]];
[square35 setImage:[UIImage imageNamed:[game imageForSquare:35]]];
[square36 setImage:[UIImage imageNamed:[game imageForSquare:36]]];
[square37 setImage:[UIImage imageNamed:[game imageForSquare:37]]];
[square38 setImage:[UIImage imageNamed:[game imageForSquare:38]]];
[square39 setImage:[UIImage imageNamed:[game imageForSquare:39]]];
[square40 setImage:[UIImage imageNamed:[game imageForSquare:40]]];
[square41 setImage:[UIImage imageNamed:[game imageForSquare:41]]];
[square42 setImage:[UIImage imageNamed:[game imageForSquare:42]]];
[square43 setImage:[UIImage imageNamed:[game imageForSquare:43]]];
[square44 setImage:[UIImage imageNamed:[game imageForSquare:44]]];
[square45 setImage:[UIImage imageNamed:[game imageForSquare:45]]];
[square46 setImage:[UIImage imageNamed:[game imageForSquare:46]]];
[square47 setImage:[UIImage imageNamed:[game imageForSquare:47]]];
[square48 setImage:[UIImage imageNamed:[game imageForSquare:48]]];
[square49 setImage:[UIImage imageNamed:[game imageForSquare:49]]];
[square50 setImage:[UIImage imageNamed:[game imageForSquare:50]]];
[square51 setImage:[UIImage imageNamed:[game imageForSquare:51]]];
[square52 setImage:[UIImage imageNamed:[game imageForSquare:52]]];
[square53 setImage:[UIImage imageNamed:[game imageForSquare:53]]];
[square54 setImage:[UIImage imageNamed:[game imageForSquare:54]]];
[square55 setImage:[UIImage imageNamed:[game imageForSquare:55]]];
[square56 setImage:[UIImage imageNamed:[game imageForSquare:56]]];
[square57 setImage:[UIImage imageNamed:[game imageForSquare:57]]];
[square58 setImage:[UIImage imageNamed:[game imageForSquare:58]]];
[square59 setImage:[UIImage imageNamed:[game imageForSquare:59]]];
[square60 setImage:[UIImage imageNamed:[game imageForSquare:60]]];
[square61 setImage:[UIImage imageNamed:[game imageForSquare:61]]];
[square62 setImage:[UIImage imageNamed:[game imageForSquare:62]]];
[square63 setImage:[UIImage imageNamed:[game imageForSquare:63]]];
[square64 setImage:[UIImage imageNamed:[game imageForSquare:64]]];
NSLog(@"-------------------BOARD READOUT-----------------------:");
for (int i = 1; i <=64; i++) {
NSLog(@"Square %i: %@", i, [game imageForSquare:i]);
}
}
'square1'UIImageViews은, 상기 [게임 imageForSquare : 상기의 ViewController에서 호출되어있어서 필요에 적절한 화상있는 NSString *를 반환 표시됩니다.
사람이 두 명으로 게임을 할 때 보드가 완벽하게 업데이트되며,이 후 프로그램은 다음 플레이어의 입력을 기다리고 아무 문제없이 많은 게임을 실행합니다.
나는 또한 알고리즘을 사용하여 이동을 선택하는 컴퓨터 플레이어가 있으며, 나는 현재 서로에 대해 두 대의 컴퓨터 플레이어가있는 게임을 설정하려고합니다. (나는 인간 대 컴퓨터 게임을 아직 시도하지 않았다).
문제는 updateBoard 메서드가 호출 될 때 이미지가 업데이트되지 않는다는 것입니다. 하단의 NSLog 판독 값은 모든 것이 정상적으로 실행되었음을 알려주고 콘솔을 통해 게임을하는 두 명의 플레이어를 실제로 볼 수 있습니다.
나는 updateBoard를 호출 한 직후에 컨트롤을 다음 컴퓨터 플레이어로 전달하고 어떻게해서든지 UIImageViews가 올바르게 업데이트되지 못하게한다는 사실과 관련이 있다고 가정합니다. 나는 다음 플레이어가 호출되는 코드 행을 주석 처리하는 테스트를 수행했는데 (단 한 번의 이동 만 수행 한 다음 실행이 중지됨을 의미) 보드가 올바르게 업데이트되었습니다.
오랜 질문을드립니다. 미리 제안 해 주셔서 감사합니다.
감사합니다. 이것은 완벽하게 작동합니다. 나는 그것을 완전히 이해하지는 못하지만 일을하는 것처럼 보입니다. 나는 그것을 읽는 것에 대한 나의 목록에 올려 놓을 것입니다! – SteveB
"WWDC 2012 세션 211 - 동시 사용자 인터페이스 작성"과 같이이 주제와 관련된 WWDC 세션 만 권장 할 수 있습니다. –
당신의 해결책은 내 문제를 해결했습니다 :) 고마워요! – KiNG