2016-08-31 1 views
0

J'ai un NSCollectionView qui peut lire les données comme ce code:Comment puis-je créer un fichier plist à partir de ces baies?

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"}, 

        ]; 

Ma question est, comment je peux tourner ce code dans un fichier plist, afin que je puisse obtenir les données du fichier plist dans le NSCollectionView par en utilisant ce code:

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

Comme il est déjà écrit comme ça, vous pouvez utiliser 'writeToFile:' dans Desktop (par exemple) afin de créer un fichier plist, et de l'utiliser par la suite. – Larme

Répondre

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; 

Vous devez donc créer un nouveau fichier plist, vous pouvez utiliser [NSBundle mainBundle].

0

Vous pouvez utiliser la fonction suivante (objective-C) pour créer le fichier 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

Vous pouvez créer un ne w fichier plist et la conception de votre plist image ci-dessous:

enter image description here