2013-04-18 3 views
-1

을 낮추기 위해 대문자를 매핑 :고유하게 내가이 문자열이 경우를

ahFkZXZ-cHV6emxlZmxvd2RldnIZCxILUHV6emxlSW1hZ2UYgICAgICAgIBcDA 
ahFkZXZ-cHV6emxlZmxvd2RldnIZCxILUHV6emxlSW1hZ2UYgICAgICAgIBCDA 
당신이이 문자열 3 - 투 - 마지막 문자 'C'는 대문자가 아닌, 거의 동일하다는 것을 알 수 있습니다

하나는, 다른 하나는 소문자입니다. Mac OS X은 대소 문자를 구분하지 않는 파일 시스템이므로이 이름을 가진 두 번째 파일이 첫 번째 파일을 덮어 씁니다.

즉각적인 생각은 문자열의 문자를 반복하고 대문자를 소문자로 '매핑'하는 것입니다. 예를 들어 모든 대문자의 경우 소문자 2자를 대문자로 바꿉니다 ('C'는 'cc'가됩니다).

이 구현에서 고유성에 문제가 있습니까? Objective C에서이 작업을 수행하는 가장 간단한 방법은 무엇입니까? 각 글자를 반복하는 것은 쉽지만, 덜 고통스럽게 만들 수있는 기본 제공 도우미 함수가 있다면 궁금합니다.

또한 Mac OSX/iOS의 파일 이름 길이 제한에 대해 잘 모르겠습니다.

* iOS 앱에도 해당되지만 시뮬레이터에서 버그가 발생하기 때문에 해결하고 싶습니다.

+1

"매핑"이란 "대문자로 변환"을 의미합니까? 그렇다면'NSString'의'upperCaseString' 메쏘드가 대신 해줍니다. – Monolo

+0

Mac OS X은 파일 시스템이 아닙니다. OS X은 운영 체제입니다. 당신이 말하고자하는 것은 HFS가 실제로 당신의 컴퓨터를 어떻게 구성 했느냐에 따라 대소 문자를 구분할 수있는 파일 시스템이라는 것입니다. – Till

답변

0

잘못하고 있습니다.

가능한 해결 방법 : 모두 "키"가 유효하고 파일 이름과 키를 사용하지 않는, 그들을 위해 두 가지 파일을 필요로하는 경우

  1. 소문자/대문자
  2. 에 문자열을 변환합니다. 고유 한 (예 : 증가하는) 파일 이름을 지정하고 키를 파일 이름에 매핑하는 별도의 파일을 만듭니다.
0

왜 문자열 끝 부분에 문자열 해시를 추가하지 않으시겠습니까? 문자열에이 해시를 추가하면 각 사례마다 고유 한 문자열을 갖게됩니다.

함수는 다음과 같습니다. [str hash];

관련 문제