목표 C에서 'int' 배열의 길이
함수에 정수 배열을 전달합니다.다음으로 배열을 통과합니다.C와 C++에서 이것은 단순히 다음을 사용함으로써 작동했습니다.arrayname.length배열된 요소의 수를 제공했습니다.목표-C에서 그것을 찾을 수 있는 방법은 무엇입니까?
[NSArrayObject length]일을 하는NSArray타이프 하지만 나는 그것을 원합니다.int[]. 심지어는[XYZ count](이미 제안된 답변) 그래서 여기서 다른 방법을 찾고 있습니다.
[XYZ count]를 사용하여 배열의 길이를 얻을 수 있습니다.
Int들의 배열로 Objective-C에 특정한 것은 없습니다.당신은 마치 C를 사용하는 것과 같은 기술을 사용할 것입니다.
sz = (sizeof foo) / (sizeof foo[0]);
다음과 같은 것은 없습니다.array.lengthC. Objective-C의 int 배열은 C의 int 배열과 정확히 같습니다.다음과 같이 정적으로 정의되어 있다면,int foo[5], 그러면 할 수 있습니다.sizeof(foo)크기를 구하다 - 그러나 동일한 기능에서만.foo에서 정의됩니다(다른 함수에는 배열 자체가 아니라 int 포인터일 뿐입니다).그렇지 않으면 이 정보를 얻을 수 있는 본질적인 방법이 없습니다.크기를 전달하거나 보초 값을 사용해야 합니다(단, char 배열인 C 문자열의 종결 '\0'과 같이).
[array count] 이는 objective-c에서 가장 쉽게 작동하는 것으로 보입니다.
어? C에는 arrayname.length라는 게 없습니다.다음과 같은 원시 유형의 배열.int[], 런타임에 연관된 길이 정보가 없습니다.
배열에 있는 요소의 총 개수를 알 수 없을 때 이 코드를 사용할 수 있습니다.
main()
{
int a[]={1,2,3,4,5,6,7}
int i;
clrscr();
for (i=0;i<=((sizeof(a)/sizeof(int));i++)
{
puts(a[i]);
}
getch();
}
다음과 같은 것은 없습니다.arrayname.lengthC. 이것이 많은 함수들이 인수 쌍을 취하는 이유입니다. 하나는 배열로, 하나는 배열로, 그리고 하나는 배열의 길이로.가장 확실한 경우는 메인 기능입니다.이 기능은 이름이 붙은 파일에서 모든 iPhone 프로젝트임을 알 수 있습니다.main.m, 다음과 같이 보일 것입니다.
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
그 방법을 주목하세요.argvagment는 벡터 또는 문자열의 배열입니다. 그리고argc인수는 이 배열에 있는 항목의 개수입니다.
모든 원시 유형에 대해 동일한 작업을 수행해야 합니다. 이 작업은 Objective-C의 C 부분입니다.NSray 또는 하위 클래스를 사용하여 Objective(객관적) 부분에 머무르면 정상적으로 작동하지만 모든 요소가 객체가 되어야 합니다.
을 위한 일처럼 보입니다.NSMutableArray 만약 , . C 어레이를 사용해 보세요. 그렇지 않다면 고려해 보십시오.NSMutableArray.
제가 틀릴 수도 있지만(그러면 수정해주세요), C에서는 런타임에 int[]의 크기를 얻을 수 있는 쉬운 방법이 없습니다.배열을 유지할 구조를 만들고 배열에 있는 항목의 수를 직접 추적할 수 있는 int와 같은 작업을 수행해야 합니다.
더 멋진 것은 당신의 구조가 당신의 배열과 블록을 유지하도록 만들 수 있습니다.그러면 당신은 당신을 위해 추적을 할 블록을 설계할 수 있습니다.
이것은 객관적 질문이 아니라 C 질문입니다.
정수 배열을 원하는 경우 NSNumber 개체로 감싸고 NSray에 배치합니다.
당신이 요구하는 것은, 당신이 시도할 수 있는 mac의 방법이 있지만, C에서는 실제로 잘 지원되지 않습니다(malloc_size).
다음 방법을 시도해야 합니다.
float ptArray[] = {97.8, 92.3, 89.4, 85.7, 81.0, 73.4, 53.0, 42.3, 29.4, 14.1};
int x = sizeof(ptArray)/sizeof(ptArray[0]);
NSLog(@"array count = %d", x);
출력:
array count = 10
언급URL : https://stackoverflow.com/questions/1530050/length-of-an-int-array-in-objective-c
'programing' 카테고리의 다른 글
| (x < 0)과 (x == -1) 중 어느 것이 더 빠릅니까? (0) | 2023.09.08 |
|---|---|
| 워크시트의 "마지막" 셀 강제 새로 고침 (0) | 2023.09.08 |
| Spring Data에서 동일한 QueryDSL 경로에 대해 여러 개 (0) | 2023.09.08 |
| YamlPropertiesFactoryBean을 사용하여 Spring Framework 4.1을 사용하여 YAML 파일을 로드하는 방법은 무엇입니까? (0) | 2023.09.08 |
| 경고: CSRF 토큰 인증 레일을 확인할 수 없습니다. (0) | 2023.09.08 |