2010-05-24 2 views
0

:충돌 문자열 .... 나는 .H 파일에있는 :(

NSString *dataHML; 
NSString *dataHML2; 
NSString *dataHML3; 
NSString *dataHML4; 
NSString *dataHML5; 
NSString *dataHML6; 
NSString *dataHMLtotal; 

하는 .m 파일에 내가 그들을 병합 :

NSString *dataHtmlTotal = [NSString stringWithFormat:@"%@%@%@%@%@%@", dataHtml, dataHtml2, dataHtml3, dataHtml4,dataHtml5,dataHtml6]; 

그러나 불행하게도 그것은 어떤 점에서 충돌 아무도 나에게 다른 솔루션을 제공하고 nsuserdef 또는 nsarray를 이미 시도했기 때문에 그것을 게시 할 수는 없지만 작동하지 못하면

+1

dup : http://stackoverflow.com/questions/2898183/strings-wont-combine-objective-c – progrmr

+0

완전히 새로운 질문을하는 대신 문제가있는 수정 사항으로 원래 질문을 업데이트하십시오. 감사. – fbrereto

+2

이것은 분명히 실제 코드가 아닙니다. 변수 이름이 일치하지 않습니다. 이 일반적인 기술은 작동해야합니다. 따라서 충돌은 실수로 인한 것이며, 이러한 변수가 지정된 위치를 포함하여 모든 관련 코드를 보지 않고도 실수를 판별하는 것은 어렵습니다. – Chuck

답변

0

실제로 변수 이름이 6 개인 경우 배열을 사용하는 것이 좋습니다.

NSMutableArray *dataHMLStrings = [NSMutableArray array]; 

[dataHMLStrings addObject:@"String1"]; 
[dataHMLStrings addObject:@"String2"]; 
      . 
      . 
      . 
[dataHMLStrings addObject:@"String100"]; // or however many you have. 

NSString *dataHMLTotal = [dataHMLStrings componentsJoinedByString:@""]; 

당신은 componentsJoinedByString: 방법에 다른 문자열을 (당신은 아무것도 각 dataHML 문자열 사이에 표시하지 않았기 때문에 내가 여기에 빈 문자열을 전달) 제공 할 수 있습니다.

+0

감사합니다. 이제 매우 유용한 팁입니다. D – Ruiter

0

문자열이 모두 있는지 확인하십시오. 할당 및 초기화 (귀하의 질문에서 언급하지 않은 포인트). 그렇게하지 않으면 가비지 포인터의 위치에서 데이터를 조작 할 위험이 있으며 응용 프로그램이 충돌 할 가능성이 높습니다.

+0

@dreamlex : 나는 빨간 온라인 튜토리얼을 가지고 있으며, 내 코드는 그 모든 것을 게시하기에 꽤 길다. 그 이유는 내가 작은 평화를 그 문제와 함께 놓은 이유이다. 만약 내가이 문제를 직접 해결할 수 있다면 나는 여기에 내 문제를 놓지 않을 것이다. :) 그리고 나는 그것이 dataHtmlTotal 대신에 dataHMLTotal이라는 것에 동의하지만, 문제는 계속 충돌합니다. – Ruiter

관련 문제