AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung XE5 / iOS / Einstellungen auslesen: ok bei iPhone4, freeze bei iPhone5
Thema durchsuchen
Ansicht
Themen-Optionen

XE5 / iOS / Einstellungen auslesen: ok bei iPhone4, freeze bei iPhone5

Ein Thema von moe120 · begonnen am 21. Nov 2013 · letzter Beitrag vom 9. Dez 2013
Antwort Antwort
moe120

Registriert seit: 1. Okt 2012
Ort: Radeberg
34 Beiträge
 
Delphi XE6 Enterprise
 
#1

XE5 / iOS / Einstellungen auslesen: ok bei iPhone4, freeze bei iPhone5

  Alt 21. Nov 2013, 15:58
Hallo,

ich lese in meiner App beim Starten zuvor gespeicherte Einstellungen (z.B. Serveradresse, Nutzername etc.) aus. Das klappt beim iPhone4 wunderbar und sogar im Simulator (wo der lokale Speicher für diese Werte jedoch ständig geleert wird), nicht jedoch beim iPhone5. Wäre über jeden Denkanstoss oder Alternativen (gern auch mit entsprechendem Code) dankbar.

hier der Code zum Auslesen (die doppelte Funktionsverschachtelung hab ich gemacht weil ich bei Embarcadero gelesen hab, dass ein try-catch bei iphones/ARM CPU's nur richtig funktioniert wenn nur EINE Funktion/Prozedur hinter Try steht, hat aber leider nichts gebracht, in das except läuft er gar nicht erst rein sondern freezt direkt)

Delphi-Quellcode:
{$IFDEF IOS}
function Read_string_setting(name: String): String;
var
  lDefaults: NSUserDefaults;
begin
  try
  lDefaults:= TNSUserDefaults.Wrap(TNSUserDefaults.OCClass.standardUserDefaults);
  Result:= UTF8ToString(lDefaults.stringForKey(NSStr(name)).UTF8String);
  except
  Result:= '';
  end;
end;
{$ENDIF}


procedure proc_read_server_address;
begin
I_server_Address:= Read_string_setting('server_address');
end;


function do_read_settings: Boolean;
begin

  //--read server_address
  Form2.Progressbar1.Value:= 10; Application.ProcessMessages; Sleep(50);
  try proc_read_server_address; // <- freeze hier bei iPhone5, ok bei iPhone4
  except I_server_Address:= ''; end;

  [...]

end;

vllt. seh ich ja auch den Wald vor lauter Bäumen nicht. Hatte erst den Debug-Schalter IOS im Verdacht aber das wär ja Quatsch, weil der ja nur zur Compilierzeit von Bedeutung ist.

Ich hab auch schon eine root.plist mit all denn "Variablen"-namen die ich abfragen/speichern möchte erzeugt und in Bereitstellung reingehängt aber ohne Ergebnis. (Beim iPhone4 brauch ich die gar nicht erst um mit dieser Funktion Werte auslesen zu können)


hier noch die Funktion zum Speichern der Settings / Aufruf analog:
Delphi-Quellcode:
{$IFDEF IOS}
function Save_string_setting(name: String; value: String): Boolean;
var
  lDefaults: NSUserDefaults;
begin
  try
  lDefaults := TNSUserDefaults.Wrap(TNSUserDefaults.OCClass.standardUserDefaults);
  lDefaults.setObject((NSStr(value) as ILocalObject).GetObjectID,
                       NSStr(name));
  Result:= true;
  except
  Result:= false;
  end;
end;
{$ENDIF}
  Mit Zitat antworten Zitat
mcbrab

Registriert seit: 5. Dez 2013
1 Beiträge
 
#2

AW: XE5 / iOS / Einstellungen auslesen: ok bei iPhone4, freeze bei iPhone5

  Alt 9. Dez 2013, 16:45
Hi.

Make sure the returned preference-string is not nil

Delphi-Quellcode:
function GetPreferenceItem( const APreference : string ) : string;
 var
  lDefaults : NSUserDefaults;
  val : NSString;
begin
  lDefaults := TNSUserDefaults.Wrap( TNSUserDefaults.OCClass.standardUserDefaults );
  try
    val := lDefaults.stringForKey( NSStr(APreference) );
    if val <> nil then
      result := UTF8ToString(val.UTF8String);
  except on e : exception do
    result := '';
  end;
end;

Geändert von mkinzler ( 9. Dez 2013 um 16:50 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz