2014-08-27 4 views
-1

현재 첫 번째 앱의 마지막 단계를 구현 중이지만 많은 문제가 있습니다. 사용자가 입력 한 데이터를 저장하려고하지만 매우 혼란 스럽습니다.Swift에서 plist 파일에 배열을 저장하는 데 어려움을 겪고 있습니다.

원래 NSUserDefaults를 사용하고 있었지만 매우 이해하기 쉽지만 NSMutableArrays를 저장할 수 없다는 것을 빨리 알았습니다. 그래서 대안을 찾아야했습니다. 내가 볼 수있는 무엇을 plist 파일에 내 다섯 배열을 저장하는 것이 최선의 선택이 될까요?

나는 이것에 대해 많은 연구를 해왔지만 간략하게 어떤 예도 없기 때문에 배울 좋은 모범을 찾기 위해 애썼다.

현재 나는 plist 파일 'Transactions.plist'를 설정했고 그 안에있는 모든 것은 사전 설정된 '루트'입니다.

 arrayDataPayments.addObject(transactionName) 
     arrayDataCost.addObject(finalUserBudget) 
     arrayDataDate.addObject(transactionDateInputted) 
     arrayDataValue.addObject(currencyDouble) 

     let path = NSBundle.mainBundle().pathForResource("Transactions", ofType: "plist") 
     arrayDataPayments.writeToFile(path!, atomically: true) 
     arrayDataCost.writeToFile(path!, atomically: true) 
     arrayDataDate.writeToFile(path!, atomically: true) 
     arrayDataValue.writeToFile(path!, atomically: true) 
     arrayDataImage.writeToFile(path!, atomically: true) 

내가 PLIST 파일에 아무것도 설정해야하거나이 얼마나 남아있을 수 있습니다 수행하고 :

는 사용자가 추가 버튼을 누를 때 호출 내 배열에 대해 가지고있는 코드입니다 내 코드가 맞습니까? 테이블 뷰에 표시해야 할 때 어떻게 plist 파일에서 각 배열을 다시 가져올 수 있습니까?

답변

0

먼저 애플리케이션 번들에 쓸 수 없으며 문서 디렉토리가 필요합니다.

파일 경로가 양호한 경우 각각 arrayDataPayments.writeToFile은 이전 파일을 지나칠 것입니다. 그 안에 모든 배열을 가진 plist를 생성해야합니다. 또는 모든 배열을 포함하는 사전을 작성하고 해당 파일을 작성하십시오. 각 배열 항목은 NSCoding 프로토콜을 준수해야합니다.

관련 문제