실제로 어떤 변수인지 알지 못하도록 NSMutableArray
에 넣은 항목의 값을 변경해야합니다. 그게 가능하니? C에서는 포인터를 사용하여이 작업을 수행 할 수 있다고 생각합니다.ObjectiveC 콜렉션의 C 스타일 포인터
int i = 0;
int *j = &i;
*j = 5;
NSLog (@"'%d'",i); // Prints '5'
어떻게 이것을 Objective C로 변환합니까? 그래서 내가 NSMutableArray를 넣어 2 NSStrings이있는 경우 :
NSString *text1 = @"Hello";
NSMutableString *text2 = @"World";
NSMutableArray *arr = [[NSMutableArray alloc] initWithObjects:text1,text2,nil];
그리고 언젠가 나중에
[arr objectAtIndex:1] = @"Everyone";
NSLog (@"'%@'",text2); // I want this to print 'Everyone'
어떻게 이런 짓을 했을까? 이 구문은 마지막 코드 블록의 첫 번째 줄에 Expression is not assignable
오류를 제공합니다.
내가 조금 더 첫 번째 코드 블록에서 C 코드처럼 보이는이를 변경하는 경우 : 나는 첫 번째 줄에 아크 오류 Implicit conversion of an indirect pointer to an Objective-C pointer to 'id' is disallowed with ARC
를 얻을 수
NSMutableArray *arr = [[NSMutableArray alloc] initWithObjects:&text1,&text2,nil];
및
*[arr objectAtIndex:1] = @"Everyone"
및
Assigning to 'id' from incompatible type 'NSString *'
두 번째 줄에 나는 이것에 약간의 다른 약간의 조정을 시도했지만, 그들 모두는 약간의 오류를 던진다.
분명히 나는이 일을하지 않고 있지만 아이디어가 부족합니다.
편집 : 그것은 내가 새 문자열을 만들고 내가 전에 색인 1에서 가지고 있던 문자열을 대체하려는 것 같아요. 그게 내가하려는 일이 아니야. 나는 기본적으로 변수의 이름을 사용하지 않고 변수의 값을 변경하기 위해 배열을 사용하려고한다. (실제 프로젝트에서는 변경할 필요가있을 때 그 이름이 무엇인지 모른다.)
음, 프로그래밍에 대해 어떻게 질문하지 않습니까? – GeneralMike
"최소 이해". 없는. –