2013-03-25 2 views
1

NSUserDefaults과 함께 이상한 동작이 발생합니다. 내가 처음에 내 AppDelegate.m의 사용자 기본값으로 배열을 저장하고있다 :NSUserDefaults에서 NSArray를 검색하면 빈 배열이 반환됩니다.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSArray *weekdayIDs = [defaults objectForKey:@"weekdayIDs"]; 
: 다른 뷰 컨트롤러 ContentViewController.m 지금

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSArray *weekdayIDs = [defaults objectForKey:@"weekdayIDs"]; 

if (weekdayIDs == nil) { 
weekdayIDs = [NSArray arrayWithObjects:@"su", @"mo", @"tu", @"we", @"th", @"fr", @"sa", nil]; 
[defaults setObject:weekdayIDs forKey:@"weekdayIDs"]; 
} 

[defaults synchronize]; 

, 나는 배열을 검색 할

하지만 객체가없는 배열을 얻습니다. 비록 count == 7입니다. 나는 또한 동일한 결과와 함께 arrayForKey:을 사용했다. 내 브레이크 포인트에서 스크린 샷을 추가했습니다.

enter image description here

나는 정기적으로 NSUserDefaults을 사용하고 있지만, 현재 나는 조금이 붙어 있어요. 아마 어리석은 실수 일 테니, 누구든지 도와 주겠니?

정말 고마워요!

- 업데이트 : 나는 또한 첫번째 장소에있는 NSArray의 초기화에 문제가 될 수 있지만, 심지어 NSString *dwid_su = [NSString stringWithString:@"su"]; 작동하지 않았다 수동으로 작성하여 그 객체를 대체 할 수 생각

.

+2

안녕하세요. 배열을 'NSLog'하려고 했습니까? 디버거 콘솔에서'po weekdayIDs'를하면 어떻게 될까요? – Alladinian

+0

댓글을 주셔서 대단히 감사합니다. 내 배열 잘 작동합니다. – Julian

+1

내가 처음에는 문제가 발생한 이유에 관심이 있다면 그렇게 생각했습니다. 답변은 다음과 같습니다. http://stackoverflow.com/questions/10963268/float-variables-assigned-value-from-line-above/10963683 # 10963683 – Alladinian

답변

2

코드가 완벽하게 작동합니다.

배열의 설명을 인쇄하면 원하는 것을 볼 수 있습니다.

오른쪽 weekdayIDs 변수를 클릭 weekdayIDs

인쇄 설명을 선택하거나 lldb 디버거 여기에 콘솔 po weekdayIDs

또는 NSLog(@"%@", weekdayIDs);

결과를 사용합니다.

enter image description here

+0

네가 맞아, 고마워. 오류가 다른 곳에서 발생했기 때문에 어레이가 문제 였고 잘못된 트랙으로 인도되었다고 생각했습니다. 그러나 지금 나는 그것을 얻었다. 추신 : 그것은 이미 독일에서 오후 11시입니다. : -S – Julian

+0

@Julian 또한 이탈리아에서 ;-) –

+1

@Julian은 배열이 nil 인 경우에만 동기화를 수행합니다. 이 코드 스 니펫을 사용하면 다른 방법으로 게시합니다. 하지만 다른 기본값을 쓰는 것 같아요. –

관련 문제