for - nfc iphone 7 como activar
cómo agregar y obtener los valores de.plist en iphone sdk (5)
Estoy implementando una aplicación basada en servicios web. En eso necesito agregar una cadena como propiedad en .plist y necesito obtener el valor de .plist siempre que lo necesite en el código. ¿Pueden ustedes ayudarme en esto?
Aquí hay un ejemplo de código:
NSString *path = [[NSBundle mainBundle] pathForResource: @"YourPLIST" ofType: @"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile: path];
id obj = [dict objectForKey: @"YourKey"];
No puedes hacer esto. Cualquier paquete, ya sea iOS o Mac, el sistema operativo es de solo lectura, solo puede leerlo y no puede crear archivos, escribir o hacer nada con los archivos en un paquete. Esto es parte de las características de seguridad de Apple. Puede usar NSDocumentsDirectory para escribir y leer las cosas que necesita para su aplicación
Obtener de la lista es muy simple.
NSString *path = [[NSBundle mainBundle] pathForResource:@"SaveTags" ofType:@"plist"];
if (path) {
NSDictionary *root = [NSDictionary dictionaryWithContentsOfFile:path];
}
Si desea agregar algo a un plist, quizás pueda encontrar la respuesta aquí: ¿Cómo escribir datos en plist?
Pero si solo desea guardar algún mensaje en su aplicación, NSUserDefaults es la mejor manera.
NSURL *url = [[NSBundle mainBundle] URLForResource:@"YOURPLIST" withExtension:@"plist"];
NSArray *playDictionariesArray = [[NSArray alloc ] initWithContentsOfURL:url];
NSLog(@"Here is the Dict %@",playDictionariesArray);
o puedes usar el siguiente también
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Sample.plist"];
NSBundle* mainBundle = [NSBundle mainBundle];
// Reads the value of the custom key I added to the Info.plist
NSString *value = [mainBundle objectForInfoDictionaryKey:@"key"];
//Log the value
NSLog(@"Value = %@", value);
// Get the value for the "Bundle version" from the Info.plist
[mainBundle objectForInfoDictionaryKey:@"CFBundleVersion"];
// Get the bundle identifier
[mainBundle bundleIdentifier];