장치의 plist에서 읽고 쓸 수 없지만 시뮬레이터에서는 가능합니다.

사용자 1411094

나는 Stackoverflow에서 비슷한 문제가있는 많은 게시물을 보았지만 여전히 plist를 쓰거나 읽을 수없는 이유를 알 수 없습니다. 내 plist를 앱에로드하는 방법은 다음과 같습니다. plist를 리소스 폴더가 아닌 장치의 문서 폴더에 복사해야합니다. 맞나요 ?

-(void)loadPlist:(NSString*)plistString {
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.plist", plistString]];

NSFileManager *fileManager = [NSFileManager defaultManager];

if (![fileManager fileExistsAtPath:path]) {
    NSString *bundle = [[NSBundle mainBundle]pathForResource:plistString ofType:@"plist"];

    [fileManager copyItemAtPath:bundle toPath:path error:&error];
} else {
    NSLog(@"%@ already exists",path);
}
}

이것은 내 plist에 쓰는 방법입니다.

-(void)writeScore:(NSString*)objectstring forPlayer:(int)playerTag {
switch (playerTag) {
    case 1:
        NSLog(@"Wrote to 1");
        holeInt = [P1hole_Label.text integerValue];
        plistpath = [[NSBundle mainBundle]pathForResource:@"Scores" ofType:@"plist"];
        plistdata = [[NSMutableDictionary alloc]initWithContentsOfFile:plistpath];
        [plistdata setObject:[NSString stringWithString:objectstring] forKey:[NSString stringWithFormat:@"Hole %i", holeInt]];
        [plistdata writeToFile:plistpath atomically:YES];
        break; 
Etc.

그리고 여기에 내가 plist를 읽는 방법이 있습니다.

-(void)createNewHoleLabel:(NSString*)plistString andSetX:(int)x {
//SetX; 0 = P1, 1 = P2 etc.

UILabel *label = [UILabel new];
[label setFrame:CGRectMake(80 + 53 * x, 93 + 26 * integer, 50, 25)];

NSString *path = [[NSBundle mainBundle]pathForResource:plistString ofType:@"plist"];
NSMutableDictionary *dict = [[NSMutableDictionary alloc]initWithContentsOfFile:path];

label.text = [dict objectForKey:[NSString stringWithFormat:@"Hole %i", integer + 1]];

[label setAdjustsFontSizeToFitWidth:YES];
[label setTextAlignment:NSTextAlignmentCenter];
integer++;
[scrollview addSubview:label];
}

당신이 나를 도울 수 있기를 바랍니다. 필요한 경우 자세한 내용을 문의하십시오.

zaph

writeScore:forPlayer:

plistpath = [[NSBundle mainBundle]pathForResource:@"Scores" ofType:@"plist"];
...
[plistdata writeToFile:plistpath atomically:YES];

장치에서 수행 할 수없는 앱의 번들에 쓰려고합니다. 문서 디렉토리를 작성해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Bitlocker로 암호화 된 USB 장치에 쓸 수 없습니다 (읽기만 가능).

분류에서Dev

IIS는 원격에서 호출되면 파일을 쓸 수없고 서버에서만 가능합니다.

분류에서Dev

iOS에서 .plist에 데이터를 쓸 수 없습니다.

분류에서Dev

하드 드라이브에서 읽고 쓸 수 없습니다.

분류에서Dev

하드 드라이브에서 읽고 쓸 수 없습니다.

분류에서Dev

파이썬에서 이미지를 읽고 정의 된 픽셀 순서로 다시 쓸 수있는 방법

분류에서Dev

AppCode는 시뮬레이터 및 장치에서 실행할 수 없습니다.

분류에서Dev

Android에서 파일을 읽고 쓸 수 없습니다.

분류에서Dev

Nodejs는 동시에 읽고 쓸 수 없습니다.

분류에서Dev

장치에서 테스트 할 때 Push Segue를 찾을 수 없지만 시뮬레이터에서는 작동합니다.

분류에서Dev

xcode 시뮬레이터가 설치되어 있지만 터미널에서 사용할 수 없습니다.

분류에서Dev

chkdsk가 "파일 0의 속성 16에 쓸 수 없습니다. 읽기 가능한 파일 레코드 세그먼트 0이 쓸 수 없습니다"와 함께 실패합니다.

분류에서Dev

전역 변수를 읽을 수 있지만 함수 내에서 쓸 수없는 이유는 무엇입니까?

분류에서Dev

Visual Studio 2015에서 파일 스트림을 읽고 쓸 수 없습니다.

분류에서Dev

Applescript에서 Illustrator 아트 보드의 이름을 읽고 쓸 수 있습니까?

분류에서Dev

Flutter는 물리적 장치에서 이미지 자산을로드 할 수 없습니다 (하지만 에뮬레이터에서는 제대로로드 됨).

분류에서Dev

C ++에서 하나의 스레드 만 bool 변수에 쓸 때 경쟁 조건이 가능합니까?

분류에서Dev

AWS Lambda는 읽을 수 있지만 RDS에 쓸 수 없음

분류에서Dev

사용자가 파일을 읽고 쓸 수만 있다면 실행을 막기에 충분합니까?

분류에서Dev

모든 사용자가 만든 사람에 관계없이 두 번째 드라이브의 모든 파일 / 폴더를 읽고 쓸 수 있습니다.

분류에서Dev

실제 장치로만 시뮬레이터에서 Xcode 프로젝트를 실행할 수 없습니다.

분류에서Dev

log는 logfile에 쓸 수 없지만 콘솔에 쓸 수 있습니다.

분류에서Dev

파일에 쓸 수있는 권한은 있지만 삭제할 수는 없다고 가정합니다. 어떤 권한에 대해 이야기합니까?

분류에서Dev

A.csv를 읽지 않고 새 열에서 B.csv를 읽고 A.csv에 쓸 수 있습니까?

분류에서Dev

iOS는 시뮬레이터에서 오디오를 재생하지만 장치에서는 실패합니다.

분류에서Dev

xamarin 빌드는 시뮬레이터에서 전달되지만 실제 장치에서는 실패합니다.

분류에서Dev

BB 10 앱이 장치에서 충돌하지만 시뮬레이터에서는 잘 작동합니다.

분류에서Dev

읽을 수 있지만 Samba 공유에 쓸 수 없음

분류에서Dev

읽을 수 있지만 Samba 공유에 쓸 수 없음

Related 관련 기사

  1. 1

    Bitlocker로 암호화 된 USB 장치에 쓸 수 없습니다 (읽기만 가능).

  2. 2

    IIS는 원격에서 호출되면 파일을 쓸 수없고 서버에서만 가능합니다.

  3. 3

    iOS에서 .plist에 데이터를 쓸 수 없습니다.

  4. 4

    하드 드라이브에서 읽고 쓸 수 없습니다.

  5. 5

    하드 드라이브에서 읽고 쓸 수 없습니다.

  6. 6

    파이썬에서 이미지를 읽고 정의 된 픽셀 순서로 다시 쓸 수있는 방법

  7. 7

    AppCode는 시뮬레이터 및 장치에서 실행할 수 없습니다.

  8. 8

    Android에서 파일을 읽고 쓸 수 없습니다.

  9. 9

    Nodejs는 동시에 읽고 쓸 수 없습니다.

  10. 10

    장치에서 테스트 할 때 Push Segue를 찾을 수 없지만 시뮬레이터에서는 작동합니다.

  11. 11

    xcode 시뮬레이터가 설치되어 있지만 터미널에서 사용할 수 없습니다.

  12. 12

    chkdsk가 "파일 0의 속성 16에 쓸 수 없습니다. 읽기 가능한 파일 레코드 세그먼트 0이 쓸 수 없습니다"와 함께 실패합니다.

  13. 13

    전역 변수를 읽을 수 있지만 함수 내에서 쓸 수없는 이유는 무엇입니까?

  14. 14

    Visual Studio 2015에서 파일 스트림을 읽고 쓸 수 없습니다.

  15. 15

    Applescript에서 Illustrator 아트 보드의 이름을 읽고 쓸 수 있습니까?

  16. 16

    Flutter는 물리적 장치에서 이미지 자산을로드 할 수 없습니다 (하지만 에뮬레이터에서는 제대로로드 됨).

  17. 17

    C ++에서 하나의 스레드 만 bool 변수에 쓸 때 경쟁 조건이 가능합니까?

  18. 18

    AWS Lambda는 읽을 수 있지만 RDS에 쓸 수 없음

  19. 19

    사용자가 파일을 읽고 쓸 수만 있다면 실행을 막기에 충분합니까?

  20. 20

    모든 사용자가 만든 사람에 관계없이 두 번째 드라이브의 모든 파일 / 폴더를 읽고 쓸 수 있습니다.

  21. 21

    실제 장치로만 시뮬레이터에서 Xcode 프로젝트를 실행할 수 없습니다.

  22. 22

    log는 logfile에 쓸 수 없지만 콘솔에 쓸 수 있습니다.

  23. 23

    파일에 쓸 수있는 권한은 있지만 삭제할 수는 없다고 가정합니다. 어떤 권한에 대해 이야기합니까?

  24. 24

    A.csv를 읽지 않고 새 열에서 B.csv를 읽고 A.csv에 쓸 수 있습니까?

  25. 25

    iOS는 시뮬레이터에서 오디오를 재생하지만 장치에서는 실패합니다.

  26. 26

    xamarin 빌드는 시뮬레이터에서 전달되지만 실제 장치에서는 실패합니다.

  27. 27

    BB 10 앱이 장치에서 충돌하지만 시뮬레이터에서는 잘 작동합니다.

  28. 28

    읽을 수 있지만 Samba 공유에 쓸 수 없음

  29. 29

    읽을 수 있지만 Samba 공유에 쓸 수 없음

뜨겁다태그

보관