2016-08-31 14 views
0

У меня есть NSCollectionView, который может считывать данные, как этот код:Как я могу создать файл plist из этих массивов?

self.contents = @[ 
        @{@"itemTitle":@"Product 1", 
        @"itemPrice":@"$20.90", 
        @"itemImage":@"PastedGraphic-1.png"}, 

        @{@"itemTitle":@"Product 2", 
        @"itemPrice":@"$10.90", 
        @"itemImage":@"PastedGraphic-3.png"}, 

        @{@"itemTitle":@"Product 3", 
        @"itemPrice":@"$9810.90", 
        @"itemImage":@"PastedGraphic-4.png"}, 

        @{@"itemTitle":@"Product 4", 
        @"itemPrice":@"$100.90", 
        @"itemImage":@"PastedGraphic-5.png"}, 

        @{@"itemTitle":@"Product 5", 
        @"itemPrice":@"$109.19", 
        @"itemImage":@"PastedGraphic-1.png"}, 

        @{@"itemTitle":@"Product 6", 
        @"itemPrice":@"$910.90", 
        @"itemImage":@"PastedGraphic-6.png"}, 

        @{@"itemTitle":@"Product 7", 
        @"itemPrice":@"$632.90", 
        @"itemImage":@"PastedGraphic-7.png"}, 

        ]; 

Мой вопрос, как я могу превратить этот код в файл Plist, так что я могу получить данные из файла Plist в NSCollectionView по используя этот код:

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"legue" ofType:@"plist"]; 
self.contents = [[NSArray alloc] initWithContentsOfFile:plistPath]; 
+0

Поскольку это уже написано так, вы можете использовать 'writeToFile:' в Desktop (например), чтобы создать файл plist и использовать его впоследствии. – Larme

ответ

0
NSString *filename = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]; 
// your plist path 
NSString *path = [filename stringByAppendingPathComponent:@"legue.plist"]; 
[contents writeToFile:path atomically:YES]; 
// test it 
NSString *str = [[NSBundle mainBundle]pathForResource:@"legue.plist" ofType:nil]; 
NSLog(@"%@",str); // str = nil; 

Таким образом, вы должны создать новый файл Plist, то вы можете использовать [NSBundle mainBundle].

0

Вы можете использовать следующую функцию (Objective-C), чтобы создать файл Plist:

+ (void) writeToPlist { 
    NSArray* contents = @[ 
          @{@"itemTitle":@"Product 1", 
          @"itemPrice":@"$20.90", 
          @"itemImage":@"PastedGraphic-1.png"}, 

          @{@"itemTitle":@"Product 2", 
          @"itemPrice":@"$10.90", 
          @"itemImage":@"PastedGraphic-3.png"}, 

          @{@"itemTitle":@"Product 3", 
          @"itemPrice":@"$9810.90", 
          @"itemImage":@"PastedGraphic-4.png"}, 

          @{@"itemTitle":@"Product 4", 
          @"itemPrice":@"$100.90", 
          @"itemImage":@"PastedGraphic-5.png"}, 

          @{@"itemTitle":@"Product 5", 
          @"itemPrice":@"$109.19", 
          @"itemImage":@"PastedGraphic-1.png"}, 

          @{@"itemTitle":@"Product 6", 
          @"itemPrice":@"$910.90", 
          @"itemImage":@"PastedGraphic-6.png"}, 

          @{@"itemTitle":@"Product 7", 
          @"itemPrice":@"$632.90", 
          @"itemImage":@"PastedGraphic-7.png"}, 

          ]; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 

                 NSUserDomainMask, YES); 
    NSString *documentsDirectoryPath = [paths objectAtIndex:0]; 
    NSString *filePath = [documentsDirectoryPath 
          stringByAppendingPathComponent:@"legue.plist"]; 

    [contents writeToFile:filePath atomically: YES]; 
} 
0

Вы можете создать пе ж Plist файл и создать свой PLIST ниже изображения:

enter image description here