[OSX] CocoaUserDefaults

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

d-bug

Betreff: [OSX] CocoaUserDefaults

BeitragSo, Okt 25, 2009 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
CocoaUserDefaults ist ein BlitzMax-Wrapper für die NSUserDefaults-Klasse.

Beschreibung
Die NSUserDefaults Klasse ist die standard Klasse um Benutzereinstellungen für seine Applikation zu speichern. Die Benutzereinstellungen werden unter "~/Library/Preferences/MeineApplikation.plist" gespeichert. Dieser Pfad wird allen OS X eigenen Applikationen und den meisten anderen Anbietern benutzt. Die unschöne Eigenschaft *.ini Dateien für seine eigenen Einstellungen zu verwenden kann somit umgangen werden.

Features:
Arrow Lese-und Schreibzugriff für alle BlitzMax Datentypen (Short, Int, Long, Float, Double, Byte, Bool und String).
Arrow Lese-und Schreibzugriff von String-Arrays.
Arrow Lesen von Cocoa-Einstellungen innerhalb der eigenen Applikation. (Schreiben durch manuelles entsperren möglich.)

Sample:
BlitzMax: [AUSKLAPPEN]
Import cocoaext.userdefaults

Graphics (800, 600, 0)


Local UD:TCocoaUserDefaults = New TCocoaUserDefaults

SeedRnd MilliSecs ()

Local output:String
Local stringcount:Int

Repeat

DrawText ("chaos.cocoauserdefaults sample", 10, 10)
DrawText ("Open ~~/Library/Preferences/cud_sample.plist to see the result", 10, 25)
DrawText ("A Array / B Bool / D Double / F Float / I Int / S String / Y Byte", 10, 40)

DrawText (output, 10, 60)

If KeyHit (KEY_A)
UD.setStringArrayForKey ("cud_StringArray", ["Hello", "World", "World1", "World2", "World3", "and World4"] ).synchronize ()
Local _resultarray:String[] = UD.stringArrayForKey ("cud_StringArray")
output = "String[] = "
For Local _value:String = EachIn _resultarray
output:+_value
output:+"|"
Next
output = output[0..output.length-1]
EndIf

If KeyHit (KEY_B)
If UD.boolForKey ("cud_Bool")
UD.setBoolForKey ("cud_Bool", False).synchronize ()
Else
UD.setBoolForKey ("cud_Bool", True).synchronize ()
EndIf
output = "Bool = "+UD.boolForKey ("cud_Bool")
EndIf

If KeyHit (KEY_S)
stringcount:+1
UD.setStringForKey ("cud_String", "Hello World "+stringcount).synchronize ()
output = "String = "+UD.stringForKey ("cud_String")
EndIf

If KeyHit (KEY_I)
If UD.integerForKey ("cud_Integer")
UD.setIntegerForKey ("cud_Integer", 0).synchronize ()
Else
UD.setIntegerForKey ("cud_Integer", Rand(1,1000000000)).synchronize ()
EndIf
output = "Integer = "+UD.integerForKey ("cud_Integer")
EndIf

If KeyHit (KEY_Z) 'whats wrong with the key mapping :O
If UD.byteForKey ("cud_Byte")
UD.setByteForKey ("cud_Byte", 0).synchronize ()
Else
UD.setByteForKey ("cud_Byte", Rand(1, 255)).synchronize ()
EndIf
output = "Byte = "+UD.byteForKey ("cud_Byte")
EndIf

If KeyHit (KEY_F)
UD.setFloatForKey ("cud_Float", Rnd(1.0, 1000000.0)).synchronize ()
output = "Float = "+UD.floatForKey ("cud_Float")
EndIf

If KeyHit (KEY_D)
UD.setDoubleForKey ("cud_Double", Rnd(1.0, 1000000.0)).synchronize ()
output = "Double = "+UD.doubleForKey ("cud_Double")
EndIf

Flip (1)
Cls ()

Until AppTerminate () Or KeyHit (KEY_ESCAPE)

Liegt auch bei. :>


Links:
SVN: https://svn.blitzforum.de/coco...aults.mod/
Ursprung: NSUserDefaults Beschreibung in Englisch

Screen:
Gibts keinen.
  • Zuletzt bearbeitet von d-bug am Do, März 04, 2010 20:02, insgesamt einmal bearbeitet

Ratchet

BeitragFr, Nov 27, 2009 9:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr schönes Modul. Werde ich auf jeden Fall bei meinem aktuellen Projekt benutzen und testen.
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro]

d-bug

BeitragDo, März 04, 2010 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Oha, mir ist hier glatt durch die Lappen gegangen, dass dieser Thread auch noch existiert Smile

Ich hab zwischenzeitlich CocoaExt zu einer Modul-Serie mit eigenem Scope ausgebaut und chaos.cocoauserdefaults dazu gepackt und cocoaext.userdefaults getauft. Verzeiht mir diesen Wahn.

Außerdem hat die letzte Version, die jetzt nur noch auf dem SVN-Server zu erhalten ist auch noch eingebaute Registrierung von Default-Variablen bekommen, damit man nicht blankgezogen dasteht, wenn man eine Anwendung das erste mal auf einem anderen Mac startet.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group