• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

plist writetofile /test.plist jailbreak

azamatbagatov

Weigelts Zinszahler (Rotfranch)
Registriert
27.09.08
Beiträge
252
hi ich hab eine kleine app mit dem iphone toolchain geschrieben und möchte eine propertyliste ändern, nur hab ich hierbei das problem, dass sich nichts in der plist ändert.

hier mein code:

Code:
plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:@"/test.plist"];

            [plistDict setValue:@"geht" forKey:@"test"];
            
            [plistDict writeToFile:filePath atomically:YES];
die plist habe ich direct im rootverzeichnis gespeichert, rechte auf 0777 gesetzt und sieht folgerndermasen aus:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>test</key>
    <string>Hallo</string>
</dict>
</plist>
danke für jede hilfe schon im voraus:)

ps: sitze schon seit ein paar stunden dran und probier aber kein erfolg. Hab auch schon den sourcecode von Cydia(http://svn.saurik.com/repos/menes/trunk/cydia/) . Saurik macht es eigendlich genau gleich:-[
 

azamatbagatov

Weigelts Zinszahler (Rotfranch)
Registriert
27.09.08
Beiträge
252
nach langem herrumprobieren habe ich des endlich geschafft:



Code:
plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:@"/test.plist"];
            [plistDict setValue:@"geht" forKey:@"test"];
            CFURLRef url = CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, (uint8_t *) "/test.plist", strlen("/test.plist"), false);
            CFWriteStreamRef stream = CFWriteStreamCreateWithFile(kCFAllocatorDefault, url);
            CFWriteStreamOpen(stream);
            CFPropertyListWriteToStream(plistDict, stream, kCFPropertyListXMLFormat_v1_0, NULL);
            CFWriteStreamClose(stream);