Ok - 여기에 무슨 일이 일어나고 있는지 이해할 수 없습니다. 나는 간단한 카드 게임을 만들고있다. 나는 "Card"가 있어야하는 모든 것들을 다루는 UIView의 Category를 만들었습니다. 나는 이것이 무의미하다고 생각하지만, 그렇지 않을 수도 있습니다.NSMutableArray의 객체에 속성 설정
어쨌든 내보기 컨트롤러에서 상인과 플레이어의 손을 잡기 위해 2 NSMutableArrays 만 만들었습니다. 그런 다음 카드 값을 설정하는 방법을 호출합니다. 이 방법에서는 NSLog를 사용하여 특정 카드 객체의 가치를 확인합니다. 하지만 내 View Controller에서 그 값을 얻으려고하면 배열의 마지막 객체 값을 가진 모든 객체에 대해 항상 돌아옵니다.
일부 코드 : 나는 setCardValue을 (이 범주 내에) 호출 한 후 NSLog를 얻을 때
playersCards = [[NSMutableArray alloc] initWithObjects:[[UIView alloc] init],[[UIView alloc] init],nil];
[[playersCards objectAtIndex:0] setCardValue];
[[playersCards objectAtIndex:1] setCardValue];
NSLog(@"1: %i",[[playersCards objectAtIndex:0] returnValue]);
NSLog(@"2: %i",[[playersCards objectAtIndex:1] returnValue]);
그래서 - 다시, 모두 괜찮습니다. 그러나 NSLog는 바로 거기에 있습니다. 둘 다 인덱스 1의 값을 반환합니다. 여기 무슨 일 이니?
"카테고리를 만들었습니다 ..."카테고리 란 무엇입니까? "나는 2 개의 NSMutableArrays를 만들고 있습니다."players players는 하나입니다. 다른 무엇입니까? 상황이 합산되지 않습니다. –
내가 가장 잘 이해하고있는 것처럼, 카테고리는 본질적으로 기존 클래스를 확장합니다. 이 경우에는 "카드"에 필요한 모든 데이터 (값과 슈트)를 저장하기 위해 데이터를 생성합니다. 또한이 데이터를 재생에 "처리"하고 뒤집을 수있는 메소드가 있습니다.이 배열의 다른 배열은 앱은 위에서 언급 한 playersCards 배열과 동일하지만 딜러 만 사용할 수 있습니다. 기본적으로 같은 방식으로 작동해야하기 때문에 위의 코드에 포함시키지 않았습니다. 다른 카드 세트 만 잡으십시오. – tnd