2011-03-01 4 views
3

저는 MonoTouch를 사용하여 C#으로 작성한 iPhone 앱이 있습니다. 모든 것이 잘 작동하지만, 내 애플리케이션 (작은 sqLite 데이터베이스와 임시 파일)에 의해 생성 된 파일들로 인해 우스운 일이 발생한다. 앱이 메모리에 상주하는 동안 파일이 존재하지만 내 전화를 다시 부팅하면 파일이 사라집니다. (?) 결과적으로 앱은 말하고있는 것을 잊어 버립니다.iPhone 파일이 영구적이지 않습니다.

monotouch 문서에 나와있는 것처럼 개인 파일 아래에 파일을 저장합니다. 이것은 에뮬레이터와 실제 전화기에서 모두 잘 작동합니다. 그러나 언급 한 바와 같이 파일을 다시 부팅하거나 두 시간 동안 혼자 전화를두면 파일이 사라집니다 (참고 : 앱이 실행 중이고 포커스가있는 한 모든 것이 정상입니다.) iOS는 앱을 계속 유지하는 것처럼 보입니다. 메뉴로 나가면).

내가 내 임시 파일의 경로를 얻는 방법의 예입니다 :

var documents = Environment.GetFolderPath (Environment.SpecialFolder.Personal); 
return Path.Combine(documents,"tr_activeTask.dat"); 

내가 각각의 아이폰 응용 프로그램이 자신의가 실현 아이폰 백업 "개인"폴더는 다른 일을 잊으십시오 . 이 행동을 경험 한 사람이 있습니까? 나는 원인을 파악할 수 없다. 어떻게 든 프로비저닝 프로파일에 연결되어 있습니까 (임시 테스트)?

+0

GetFolderPath에서 어떤 경로가 반환됩니까? 내가 만든 다른 앱에서는 NSBundle.MainBundle.BundlePath를 사용했습니다. 이 점이 다른 디렉토리를 가리키고 있는지 궁금합니다. – jonathanpeppers

+0

번들 경로가 읽기 전용이라고 생각 했습니까? 당신이 언급 한 전화를 시도하고 2를 당신이 최대한 빨리 돌아올 –

+1

그게 작동하는지 알고 싶으면 다른 옵션을 올렸습니다. – jonathanpeppers

답변

0

난 그냥 내 응용 프로그램에서보고, 나는이있다 : 나는 모든 것을 저장하는 곳

BaseDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), ".."); 
Documents = Path.Combine(BaseDir, "Documents"); 

이 문서 폴더입니다.

+0

오류를 발견했습니다. 파일에 액세스하는 방식에 충돌이있는 것 같습니다 (다른 곳에서는 노르웨이어 로케일을 사용합니다). 창밖을 디버깅하는 날이었습니다. 그래서 이것은 나빴습니다. 나는 또한 당신이 여기서 준 답장을 테스트했습니다. 위에서 제시 한 두 줄의 코드는 기본적으로 동일한 경로를 만들어 내기 때문에 다소 혼란 스러웠습니다. 경로에 ".."를 추가하면 "cd up"을 의미하고 "documents"를 추가합니다. 문제는 문서에 이미 있음 (specialfolder.personal = documents)입니다. 그러나 시간을내어 도와 줘서 고마워. 내가 "aha"라는 appbundle을 테스트했을 때였습니다 :) –

+0

예, "Library/Preferences"및 "Settings.bundle"과 같은 ".."가 필요한이 코드 아래에 몇 개의 다른 경로가 있습니다. – jonathanpeppers

관련 문제