2010-08-17 3 views
0

인데 nsmutabledstationnary가 있고 setObject : forKey :를 nsstring 키와 함께 사용하면 objectForKey를 시도 할 때 작동하지만 SetObject : forKey : 메소드의 키 인수에 nsmutablestring을 넣으면 작동합니다. ObjectForKey를 호출하면 작동하지 않습니다 ...nsmutablestring forkey가

답변

2

당신은 NSDictionary와 (과 NSMutableDictionary) 복사 키를 추가하기 전에 알고 있어야합니다 - 당신이 키로 인 NSMutableString를 사용하는 경우 따라서, 다음, 여전히 데이터베이스에서 키를해야합니다, 같은 문자열을 수정 오래된 가치. 이는 이유가 있습니다. NSDictionary의 키는 실제로 정적 값을 가져야합니다. 실제로 연결된 값을 검색하는 데 사용되는 해시 값이기 때문입니다.

+0

그래서 내가 할 수있는 일, 내가 \t 는 NSString * mystring에 = [[있는 NSString ALLOC] initWithString하려고하면 mutableStringVariable 객체를 가리 킵니다 : @ "fr_"stringByAppendingString : myMutableString]]; 키 인수에 myString을 넣지 만 작동하지 않습니다. – alex

+0

ok 작품입니다! 당신의 대답에있는 큰 설명을위한 고맙습니다! – alex

+0

해당 CFDictionary 함수는 키를 복사하지 않습니다. NSURLConnections를 키로 사용하기 위해이를 감쌀 필요가 없습니다 (예 : NSURLConnections). '- (NSUInteger) hash'를 오버라이드 (override)하지 않는 오브젝트에 대해서만 이것을 실시합니다. –

0

정상적인 문자열은 작동하지만 변경할 수있는 문자열이없는 경우 다른 코드 줄을 추가하고 변환하면됩니다. 정상적인 문자열로?

NSString *keyValue = mutableStringVariable;

+0

이 작업을 수행 할 경우, 당신의 문자열 키 값은 당신이 마지막에 동일한 개체를 그래서 – alex

관련 문제