2017-10-10 1 views
0

그래서 사용자가 사진을 찍는 앱이 있습니다. 이 사진을 라이브러리에 저장하고 앱의 어딘가에 표시합니다. 이 모든 것이 훌륭하게 작동합니다. 그러나 Visual Studio에서 응용 프로그램을 실행할 때마다 (사진 촬영시 세션 제외) 이러한 이미지가 표시되지 않습니다.Xamarin iOS - Visual Studio에서 실행할 때마다 사용자 생성 이미지가 사라짐

디버깅 모드가 아닌 내 장치에서 직접 앱을 시작하면 예상대로 작동합니다. 이미지가 잘 보입니다.

알고 계십니까? 은 작동해야합니다. 예를 들어 Visual Studio에서 실행할 때마다 로컬 데이터베이스가 지워지지는 않습니다.하지만 필자의 삶은 그럴 수 없습니다.

다른 위치 (자원, 응용 프로그램 데이터, 루트 MyDocuments 등)에서 이미지 저장을 시도했지만 아무 소용이 없습니다. GetImagePath(string filename)

내용 그래서 당신은 내가 그들을 저장하고있어 위치를 확인할 수 있습니다

string libPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "..", "Library"); 
return Path.Combine(libPath, filename); 

누구는 여기에 어떤 아이디어를 가지고? 일단 앱이 배포되면 좋겠지 만 개발 중에도 이런 일이 발생하는 것은 여전히 ​​성가시다.

미리 감사드립니다.

편집 : 저장 : NSData.FromArray(data).Save(path, true, out error)

나는이처럼 표시 해요 : Content.Content = new Image { Source = filename }

+0

이미지를 저장하는 코드와 이미지에 액세스하는 코드를 둘 수 있습니까? – lowleetak

+0

@lowleetak 그러나 나는 그 정보가 나와 관련성이없는 것으로 보이는 질문을 편집했습니다. Visual Studio가 포함될 때까지 처음부터 모든 후속 작업이 표시됩니다. 그들은 VS에서 응용 프로그램을 시작할 때까지 사라지지 않습니다. Android 용 – Maverick

+0

에는 배포 할 때마다 앱의 로컬 파일을 덮어 쓸 수있는 설정이있었습니다. 나는 iOS에서 이런 일이 일어난 것을 본 적이 없다. 그리고 db 파일이 아닌 이미지에만 선택적으로 적용되는 것이 확실합니다. Xcode를 사용하여 앱의 파일 시스템을 살펴 보았습니까? – Jason

답변

0

그래서했습니다 코드를 통해 놀아 스테핑의 조금 후, 여기 내 저장 및로드 코드는 대답을 찾았습니다.

iOS의 데이터는 앱 컨테이너에 저장됩니다.이 컨테이너와 연결된 GUID은 기기를 만들 때마다 변경됩니다. 파일 이름 대신 전체 파일 경로를 저장 했으므로 전체 파일 경로가 더 이상 존재하지 않는 앱 컨테이너를 찾고 있었기 때문에 이미지가 다시 배포 된 후에 나타나지 않았습니다. LibraryDocuments 폴더의 내용은 매번 새로운 응용 프로그램 컨테이너에 복사되지만 현재 버전이 장치에 빌드되기 전의 전체 경로를 사용하면 찾을 수 없습니다.

이미지를 표시해야 할 때마다 파일 이름 만 저장하고 전체 파일 경로를 가져 오도록 전환하면이 문제가 해결됩니다.

개발 과정에서이 문제가 발견되었지만 제작 과정에서 앱 업데이트 후에 이미지가 발견되지 않는 문제가있었습니다.

관련 문제