첫번째 그냥 개념 설명 :NSArray를
I 텍스트 파일 (단어 목록)에서 입력을 읽고 componentsSeparatedByString
방법을 사용하여 NSArray
에이 말을 걸었습니다. 이 작동합니다.
하지만 단어를 임의로 선택한 다음 배열에서 삭제하여 매번 다른 단어를 사용하고 싶었습니다. 물론 NSArray
내용을 변경할 수는 없습니다. 그래서 ...
NSArray
의 내용을 NSMutableArray
으로 복사하고 선택 소스로 IT를 사용합니다. 이것은 또한 각 배열의 객체 269 개를 작동합니다.
내가 다음 코드를 사용 NSMutableArray
에서 단어 돌아가려면 : 전 세계적으로
arrMutTextWords = [[NSMutableArray alloc] init]; //stack for words
arrTextWords = [[NSArray alloc] init]; //permanent store for words
-(NSString*) getaTextWord
{
// if the mutable text word array is empty refill
if ([arrMutTextWords count] == 0){
for (int i = 0 ; i < [arrTextWords count]; i++)
[arrMutTextWords addObject:[arrTextWords objectAtIndex:i]];
}
int i = random() % [arrMutTextWords count];
NSString* ptrWord = [arrMutTextWords objectAtIndex:i];
[arrMutTextWords removeObjectAtIndex:i];
return ptrWord;
} 위의 메소드를 호출하는 동안
프로그램 충돌로 선언 배열 노트 -을 - 다음은 호출 코드입니다 : arrTmp가 전역 적으로 선언되었습니다. arrTmp = [[NSArray alloc] init]; // 내가 arrMutTextWords
에서 어떻게 든 삭제 문자열이 NSArray
무효화되는 것을 생각하고 단어
for (int i = 0 ; i < 4; i++) {
tmpWord = [self getaTextWord];
[arrTmp addObject:tmpWord];
[arrTmp addObject:tmpWord];
}
에 대한 TMP 저장소 -하지만 난이 발생할 수있는 방법을 생각할 수 없다.
모든 코드 줄 앞에 4 개의 공백을 추가하십시오. 일부 코드가 StackOverflow 편집 컨트롤에 의해 처리되지 않는 것처럼 보입니다. –