2012-07-07 3 views

답변

1
  1. plist 파일을 NSDictionary으로 읽는다. [Docs]
  2. mutableCopy으로 작업 할 수있는 사전을 만드십시오.
  3. 제거 할 항목을 제거하십시오.
  4. 사전을 디스크에 다시 작성하십시오. [Docs]
-1

Sed는 매우 나쁜 도구입니다. PlistBuddy를 iOS (MacOS에 존재하는 경우)에 존재한다면 대신 사용해보십시오. 그것은/usr/libexec/PlistBuddy라고 불리며 plist 파일을 조작 할 수 있습니다.

구문이 약간 이상하지만 "Entries"는 다음과 같이 처리됩니다. plist 파일의 맨 위에서 시작합니다. 만약 배열이라면 주소 지정을 원하는 요소의 인덱스를 지정합니다. 사전이라면 이동하려는 키 이름을 지정합니다. 이러한 사양은 콜론으로 구분하십시오. 공백이 있으면 전체에 ""을 넣으십시오.

내 샘플 파일이 있습니다 :

[email protected]:~> cat foo.plist 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd"> 

<plist version="1.0"> 
    <array> 
    <dict> 
     <key>Sample 1</key> 
     <array> 
     <string>Sample String 1</string> 
     <dict> 
      <key>Sample 2</key> 
      <string>Sample String 2</string> 
     </dict> 
     </array> 
    </dict> 
    </array> 

샘플 세션 :

[email protected]:~> /usr/libexec/PlistBuddy foo.plist 
Command: print 
Array { 
    Dict { 
     Sample 1 = Array { 
      Sample String 1 
      Dict { 
       Sample 2 = Sample String 2 
      } 
     } 
    } 
} 

Command: print "0:Sample 1:1" 
Dict { 
    Sample 2 = Sample String 2 
} 

Command: delete "0:Sample 1:1" 
Command: print 
Array { 
    Dict { 
     Sample 1 = Array { 
      Sample String 1 
     } 
    } 
} 

당신은뿐만 아니라 명령 줄에서 명령을 제공하거나 문서 여기를 통해 할 수 있습니다. 대화 형으로 주위를 놀기가 쉽습니다. :

+0

plist 친구는 iOS에서 사용할 수 없습니다. – coneybeare

관련 문제