2011-05-04 2 views
3

CGRect 값이 들어있는 배열을 저장하려고합니다. plists가 CGRect 타입과 호환되지 않는다는 것을 알았으므로 코드를 약간 수정 했으므로 이제는 rect 값을 저장하는 대신 NSNumber을 저장하고 있습니다. rect 값을 x, y, width, height의 네 값으로 나눕니다.CGRect를 plist에 저장하는 중 문제가 발생했습니다.

[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetMinX(rawRect)]]; 
[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetMinY(rawRect)]]; 
[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetWidth(rawRect)]]; 
[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetHeight(rawRect)]]; 

지금 myArray1NSNumber의를 포함하고 나는 PLIST에이 값을 저장하기 위해 노력하고 있어요,하지만 난 다시 값을로드 할 수 없습니다. 내 코드에 문제가 있다면 아무도 나를 바로 잡을 수 있습니까?

미리 감사드립니다. 나는 당신의 소중한 정보를 기다리고 있습니다. 이 값

CGRect rect = CGRectFromString([rectArray objectAtIndex:0]); 

답변

16
CGRect rect = CGRectMake(0, 0, 320.0f, 480.0f); 
//you need to translate the rect into a compatible "Plist" object such as NSString 
//luckily, there is a method for that 

[rectArray addObject:NSStringFromRect(rect)]; 

//save into a plist 


... 

올바른 보인다. 문제는 다른 곳에서 발생할 가능성이 큽니다. 로딩 코드 또는 저장 코드의 다른 위치에있을 수 있지만 다른 것을 게시하지 않았으므로 문제가있는 곳을 확신 할 수 없습니다.

단순함을 위해 johnoodles 접근 방식을 시도해 볼 수는 있지만 더 큰 plist 파일을 생성하고 저장 및 검색하는 데 더 오래 걸릴 수 있습니다. 상대적으로 적은 수의 직사각형을 저장하는 경우에는 문제가되지 않지만 실제로 저장하는 경우 실제 번호로 저장하면 지연이 현저하게 줄어들 수 있습니다.

+0

+1 감사합니다. – ajay

0

당신이 제시하는 코드의 검색에

관련 문제