Salut à tous, j'ai eu un problème bizarre ici
d'abord créer un petit projet pour essayer écriture dictionnaire plist
je déclarai un champ de texte et un bouton, ce qui est le code sur les IBAction:Pourquoi ne puis-je pas écrire Dictionary to plist?
NSArray *localPathsTemp = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *localDocPathTemp = [localPathsTemp objectAtIndex:0];
NSString *localFilePathTemp = [localDocPathTemp stringByAppendingPathComponent:@"InputPassword.plist"];
NSMutableDictionary *localDictreadTemp = [[NSMutableDictionary alloc] initWithContentsOfFile:localFilePathTemp];
NSMutableDictionary *localSerialNumber = [NSMutableDictionary dictionaryWithObject:setSN.text
forKey:@"input_serial_number"];
J'essaie pour connecter ce que j'écris dans
NSLog(@"Local Dictionary : %@",[localDictreadTemp valueForKey:@"input_serial_number"]);//"input_serial_number=1"
NSLog(@"Dictionary-localSerialNumber is %@",[localSerialNumber valueForKey:@"input_serial_number"]);//1(I enter 1 at textfield)
Il est bien que je woks pense
Mais je propose tout ce à mon projet
J'ai obtenu un NULL
Voici le code dans mon projet d'origine (dans un alertview)
NSArray *localPathsTemp = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *localDocPathTemp = [localPathsTemp objectAtIndex:0];
NSString *localFilePathTemp = [localDocPathTemp stringByAppendingPathComponent:@"InputPassword.plist"];
NSMutableDictionary *localDictreadTemp = [[NSMutableDictionary alloc] initWithContentsOfFile:localFilePathTemp];
NSMutableDictionary *localSerialNumber = [NSMutableDictionary dictionaryWithObject:setLocalSerialNumber.text
forKey:@"input_serial_number"];
[localDictreadTemp addEntriesFromDictionary:localSerialNumber];
[localDictreadTemp writeToFile:localFilePathTemp atomically:YES];
NSLog(@"Text in the textfield:%@",setLocalSerialNumber.text);
NSLog(@"Local Dictionary %@",localSerialNumber);//"input_serial_number" = 1
NSLog(@"Dictionary-LocalDictreadTemp %@",[localDictreadTemp valueForKey:@"input_serial_number"]);//NULL
Le dernier résultat est NULL
C'est le problème que je ne peux pas comprendre out, j'ai une valeur à l'échantillon, mais ne fonctionne pas ici. Pourquoi ... ai-je donné un mauvais chemin de fichier ou ...?
Merci pour tous replys
Plus d'informations sur mon projet
Mon application est utilisé pour contrôler un périphérique matériel
Si l'utilisateur est la première fois à utiliser l'application
utilisateur doivent entrer le mot de passe et le numéro de série de l'appareil
L'appareil utilise bonjour pour rechercher l'appareil
Et obtenir un numéro de série/mot de passe par défaut f URL rom (ce cas est en WIFI)
URL ex.the est http://11.33.44.65/defaultsn_pwd.php
Je vais obtenir un fichier plist comme:
{
sn = 1;
pwd = 777;
}
Ceci est l'utilisateur de l'information ne peut pas le voir.
Et l'application affichera un alertView avec deux textfields
Si le texte dans le champ de texte est la forme correspond sn/passwd URL
Il écrire.
Mais si !!! utilisateur dans l'environnement 3G, il se connecte à mon serveur pour commander le dispositif
Ceci est très différent avec Wifi, parce que vous devez donner au serveur un dispositif numéro de série
Alors
Entrez le numéro de série (je dois WRI te dans le plist sur l'iphone, mais a obtenu le NULL ici)
Prenez la série en tant qu'élément d'une nouvelle URL ex.
http://server/defaultsn_pwd.php
?sn = 1
Parce que je ne peux pas écrire le numéro de série dans plist, donc je ne peux pas obtenir une bonne URL
Mon URL aimera cette http://server/defaultsn_pwd.php
? sn = NULL
Il plantera mon programme
C'est avery problèmes mortels, S'il vous plaît aidez-moi à comprendre ce problème sur ....
Je coincé dans ce problème trop longtemps ...
existe-t-le chemin? LocalDictreadTemp est-il nul après initWithContentsOfFile? – Eiko
Devrait fonctionner correctement. Quel genre de projet est-ce? Est-ce qu'il crée réellement le fichier? Pourriez-vous produire le journal de bord? – VdesmedT
vérifiez la variable localFilePathTemp. var est autorelease peut être il libère – iOSPawan