2015-02-02 1 views
0

NSMutableArray를 파일에 성공적으로 저장하고 있지만이 배열을로드 할 수 없습니다.Swift의 파일에서 NSMutableArray로드

은 여기 내 loadVocab() 메소드 여기

func loadVocab() { 
    let pathsArray = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) 
    let documentsDirectory = pathsArray[0] as String 
    let vocabPath = documentsDirectory.stringByAppendingPathComponent("vocab") 

    if NSFileManager.defaultManager().fileExistsAtPath(vocabPath){ 
     self.myWords = NSMutableArray(contentsOfFile: vocabPath) 

    } 
} 

나의 방법로드 기능이 작동하지 않습니다

func saveVocab() { 
    let pathsArray = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) 
    let documentsDirectory = pathsArray[0] as String 
    let savePath = documentsDirectory.stringByAppendingPathComponent("vocab") 
    self.myWords.writeToFile(savePath, atomically: true) 
} 

저장, 나는 빈 변경 가능한 배열을 얻고입니다. 저장 기능이 제대로 작동합니다. 도움 주셔서 감사합니다.

+0

'writeToFile' 메서드가 true를 반환합니까? – bluedome

+0

자기 자신을 인쇄하여 확인할 수 있습니까? mywords는 가치가 있습니까? – Shashi3456643

+0

'writeToFile'에 대한 입력 배열에 문자열 만 포함되어 있습니까? 이것과 함께 사용할 수있는 유형이 매우 적습니다. –

답변

0

Parse.com 캐시 정책을 사용하여 서버에 대한 두 개의 연결 사이에 로컬 저장소로 사용하기로 결정했습니다. 내가 캐시가 사용되므로 파일로 내 변경 가능한 배열을 저장할 필요가 없습니다

self.myData = NSMutableArray() 
    var query = PFQuery(className:"entries") 
    query.cachePolicy = kPFCachePolicyCacheThenNetwork 
    query.maxCacheAge = 60 * 60 * 24 // 24h maximum cache 
    query.limit = self.limit 
    query.orderByDescending("createdAt") 

: 여기

내가 내 구문 분석 쿼리를 사용하는 방법입니다. 더 많은 정보는 여기 https://www.parse.com/docs/ios_guide#top/iOS

0

나는 여기서 디렉토리를 가리키고있는 파일 이름 확장명을 가진 배열을 저장하지 않는다는 것을 발견했다.

let savePath = documentsDirectory 

은 여기서 filePath = savePath + "vocab.data" 는 이제 배열에 파일 데이터를 검색해야적인 filePath

같은 일을 저장할 수 있습니다.