테이블 뷰를 사용하는 간단한 설문지 앱이 있습니다. 사용자가 질문에 답하면 뒤로 물러나 선택 사항을 변경할 수 있습니다. 이로 인해 결과에서 중복 된 결과가 나타납니다 (선택 항목은 NSmutableArray에 저장됩니다) "double"결과를 배열에 저장하는 것을 피하는 방법은 무엇입니까? 당신이 당신의 메소드를 호출 할 경우에 다음 코드NSMutbleArray의 중복 선택 방지
0
A
답변
1
NSMutableArray *add= [[NSMutableArray alloc]init];
for (Item *item in addList){
if ([add containsObject:item])
{ // Do not add
}
else
[add addObject:item];
}
여기 addList 개체
-1
사용 ...
[yourArray removeAllObjects];
나는 당신에게 도움이 될 것이라 생각합니다. 개체가 그냥 NSMutableArray
A를 변경
if([yourMutableArray containsObject:valueToBeStored]){
NSLog(@"do not add");
}
else{
[yourMutableArray addObject:valueToBeStored];
}
0
먼저 배열은 확인 NSMutableArray를 형식이어야합니다 NSMutableSet
. 대답의 isEqual:
이 응답되는 질문 번호 만 고려하는지 확인하십시오. - (NSUInteger)hash
도 구현하되 작동하지 않을 수도 있습니다.
0
의 목록입니다 삽입 존재 여부 될 경우
0
나는 돌아가서 사용자가 앞으로 나아갈 수있는 유일한 방법은 질문에 다시 답하는 것이며 선택 사항 (답변)은 답변 된 순서대로 배열에 저장된다는 것입니다.
이 경우, 뒤로 물러 설 때마다 배열의 마지막 객체를 제거하면됩니다.
[selections removeLastObject];
당신이 그 (것)들을 앞뒤로 이동할 수 있도록하는 경우는 조금 더 복잡해진다 있지만, 기본적으로는 현재의 인덱스 및 감소에 개최하거나 각각 앞뒤로 이동하거나로 증가.
그러면 사용자가 새 대답을 선택할 때이 색인을 사용하여 현재 색인의 배열에있는 객체를 바꿉니다.
[selections replaceObjectAtIndex:currentQuestionIndex withObject:newSelection];
0
는 정렬을 필요로하는 경우,
NSMutableOrderedSet
을 사용합니다
NSMutableSet
에 배열을 변경하거나
. 이것은 기본적으로 NSMutableArray
처럼 동작하지만 isEqual:
으로 이중 항목을 확인합니다.
관련 문제
- 1. 방지 선택 +
- 2. CFgrid의 중복 업데이트 방지
- 3. ID 중복 방지
- 4. 방지 중복 된 항목
- 5. 중복 OFFSET 계산 방지
- 6. 중복 SQL 항목 방지
- 7. 중복 로그인 기록 방지
- 8. PHP에서 ID 중복 방지
- 9. JavaDoc 주석의 중복 방지
- 10. jQuery의 함수 중복 방지
- 11. 특성 : 코드 중복 방지
- 12. 데이터베이스에서 중복 방지
- 13. Google지도 마커 중복 방지
- 14. 확인란의 선택/선택 취소 방지
- 15. 선택 요소 - 선택 방지 변경
- 16. F #의 코드 중복 방지
- 17. SQL Server 기능 - 중복 방지
- 18. Linq 보류중인 삽입 중복 방지?
- 19. 브라우저/액티비티 실행 중복 방지
- 20. mySQL에 중복 행 삽입 방지
- 21. POJO 클래스에서 코드 중복 방지
- 22. QListView 및 QStandardItemModel - 중복 방지
- 23. struts2 iterator : 코드 중복 방지
- 24. 중복 된 익명 투표 방지
- 25. 중복 된 로그 처리 방지
- 26. 전자 메일 편집 중복 방지
- 27. 데이터베이스의 트윗 보관하기 (중복 방지)
- 28. 중복 된 양식 제출 방지.
- 29. 사이트 전체 중복 제출 방지
- 30. 중복 MDI 자식 폼 방지
그러면 배열에서 개체가 제거됩니다. 나는 두 배의 결과를 막으려 고하고있다. –
yourArray를 채우기 전에이 코드를 작성할 수 있습니다. 그런 다음 하나의 값만 얻을 수 있습니다. –