2009-10-21 7 views
27

임의 번호를 매길 수 있고 특정 x 수의 문자열로 제한되는 문자열 배열을 만들려고합니다.iphone 용 Objective c 배열에 문자열 배열을 만드는 방법

배열을 임의로 지정할 수있는 경우 첫 번째 x 문자열을 선택할 수 있으며 정상적으로 작동합니다.

나는 이것이 현재

NSString *statements[9]; 
statements[0] = @"hello"; 

이 작동하는 것 같다하지만, 배열이 쓰레기 데이터의 전체 것으로 보인다과 같은 코드를 사용하려고 해요.

누군가 나를 올바른 방향으로 도울 수 있습니까? (메모리 할당이 잘못된 방법으로 수행되고?

감사

답변

62

원 하시겠습니까? 9 개의 문자열이 포함 된 배열

[NSArray arrayWithObjects: @"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", nil] 
+2

배열을 nil로 끝내야합니다. @ "lastString", nil]; (내 iPhone에 끝이나 성명을 표시하지 않을 수도 있습니다. – JoePasq

2
당신이만큼이 나중에 쓰레기로 가득 점점되지 않는.을 채울 때까지이 쓰레기로 가득 할 것 같은

모든 C 자동 배열, 모든 것이 예상대로 작동하지만 Cocoa에는 NSArray 클래스가 포함되어 있습니다. NSArray 클래스는 객체 배열에 더 많이 사용되기 때문에 (적절한 메모리 관리를하고 나머지 프레임 워크와 그 모든 작업을 수행하므로)

1

팁만 있으면 배열의 내용을 섞을 필요가 없습니다. 방금 액세스를 임의 화하십시오. 덱에서 선택하려는 각 카드에 대해 임의의 번호를 선택하고 해당 색인에서 카드를 선택하십시오. 그런 다음 상단 카드를 가져 와서 방금 선택한 카드가있는 곳에 놓습니다.

당신이 정말로 비록 배열을 정렬 할 경우, 사용 매우 적은 코드로 할 수 있습니다 - 당신의 비교 방법은 무작위로 NSOrderedAscending 또는 NSOrderedDescending을 반환 sortedArrayUsingSelector:.

47

Xcode 4.4부터는 훨씬 더 깨끗하고 읽기 쉬운 Array Literals를 사용할 수 있습니다. 더 이상 '없음'을 포함 할 필요가 없습니다. 예 :

NSArray *myArray = @[@"1", @"2", @"3", @"4", @"5"]; 
관련 문제