按顺序获取plist数据 [英] Getting plist data in a order

查看:75
本文介绍了按顺序获取plist数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将数据保存在plist中.删除并重新安装我的应用程序后,我计划通过iCloud获取这些plist数据.我有上传选项,可将文件发送到云并在新安装应用程序时检索.删除/重新安装应用后,plist数据就可以毫无问题地检索到.现在的问题是我将这样的文件保存在数组中并写入plist:

I save my datas in plist. Once my app is deleted and reinstalled I planned to get those plist datas through iCloud. I have upload option to send file to cloud and retrieve when app installed new. Once app is deleted/reinstalled the plist data is retrieved with no issue. Now the problem is I save my files like this in a array and write to plist:

Printing description of arrTemp:
<__NSCFArray 0x175f7d90>(
{
    Amount = "USD 100.00";
    Category = "";
    Currency = USD;
    Date = "Fri 31 Oct,2014";
    DateSort = "2014/10/31";
    Merchant = "";
    Payment = "";
    Purpose = "-";
    SubCategory = "";
    TimeStamp = "Fri 31 Oct,2014 13:35:07";
    Tips = "0.00";
    UDDate1 = "Fri 31 Oct,2014";
    UDDate2 = "Fri 31 Oct,2014";
    UDNumber1 = "0.00";
    UDNumber2 = "0.00";
    UDNumber3 = "0.00";
    UDText1 = "-";
    UDText2 = "-";
    UDText3 = "-";
    Uploaded = upload;
    Value = 0;
}
)

当我从iCloud中检索时,plist看起来像这样:

When I retrieve from iCloud the plist looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <dict>
        <key>Amount</key>
        <string>USD 100.00</string>
        <key>Category</key>
        <string></string>
        <key>Currency</key>
        <string>USD</string>
        <key>Date</key>
        <string>Thu 31 Oct,2014</string>
        <key>DateSort</key>
        <string>2014/10/31</string>
        <key>Merchant</key>
        <string></string>
        <key>Payment</key>
        <string></string>
        <key>Purpose</key>
        <string>-</string>
        <key>SubCategory</key>
        <string></string>
        <key>TimeStamp</key>
        <string>Fri 31 Oct,2014 13:35:07</string>
        <key>Tips</key>
        <string>0.00</string>
        <key>UDDate1</key>
        <string>Fri 31 Oct,2014</string>
        <key>UDDate2</key>
        <string>Fri 31 Oct,2014</string>
        <key>UDNumber1</key>
        <string>0.00</string>
        <key>UDNumber2</key>
        <string>0.00</string>
        <key>UDNumber3</key>
        <string>0.00</string>
        <key>UDText1</key>
        <string>-</string>
        <key>UDText2</key>
        <string>-</string>
        <key>UDText3</key>
        <string>-</string>
        <key>Uploaded</key>
        <string>upload</string>
        <key>Value</key>
        <string>0</string>
    </dict>
</array>
</plist>

当新安装应用程序时,我无法将从云中检索到的数据直接写到我的plist中.我必须将plist数据转回数组(最初发布为"arrTemp的打印说明:"),然后将其写入到我的应用程序新安装时的路径中.如何将数据从plist转换为新数组应该看起来像我最初在打印arrTemp的描述:"中发布的内容一样?请帮助

I cannot write this data retrieved from cloud straight to my plist when app is installed new. I have to turn back the plist datas to like the array (posted initially "Printing description of arrTemp:") and write it to my path when my app installed new. How to turn the data from plist to new array should look like I posted initially in "Printing description of arrTemp:" ?? Please Help

推荐答案

步骤1:将NSObject类名称创建为PList.

STEP 1:Create NSObject Class name as PList.

在.h

#import <Foundation/Foundation.h>

@interface PList : NSObject

+(NSMutableArray *)arrayPlistInit:(NSString *)plistName;

@end

在.m

+(NSMutableArray *)arrayPlistInit:(NSString *)plistName

{

  NSString *stringPath = [[NSBundle mainBundle]pathForResource:plistName ofType:@"plist"];

  NSMutableArray *arrayPlist = [NSMutableArray arrayWithContentsOfFile:stringPath];

  return arrayPlist;

}

第2步:在您的视图控制器中

STEP 2:In your view controller

   In viewDidLoad Method

     arrTemp = [PList arrayPlistInit:PUBLIC]; //I think PUBLIC is the plist name.

第3步:从数组中获取值

STEP 3:Fetching Valus From array

  In viewDidLoad Method after arrTemp

   for(int i=0;i<[arrTemp count];i++)

   {

     NSString *strAmount = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0]valueForKey:@"Amount"]];

     NSString *strCategory = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"Category"]];

     NSString *strCurrency = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0]valueForKey:@"Currency"]];

     NSString *strDate= [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"Date"]];

     NSString *strDateSort = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"DateSort"]];

     NSString *strMerchant = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0]valueForKey:@"Merchant"]]; 

     NSString *strPayment = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"Payment"]];

     NSString *strPurpose = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"Purpose"]];

     NSString *strSubCategory = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"SubCategory"]];

     NSString *strTimeStamp= [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0]valueForKey:@"TimeStamp"]];

     NSString *strTips = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"Tips"]];

     NSString *strUDDate1 = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"UDDate1"]]; 

     NSString *strUDDate2 = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"UDDate2"]];

     NSString *strUDNumber1 = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0]valueForKey:@"UDNumber1"]]; 

     NSString *strUDNumber2 = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"UDNumber2"]];

     NSString *strUDNumber3 = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"UDNumber3"]]; 

     NSString *strUDText1 = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"UDText1"]]; 

     NSString *strUDText2 = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"UDText2"]]; 

     NSString *strUDText3 = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"UDText3"]]; 

     NSString *strUploaded = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"Uploaded"]]; 

     NSString *strValue = [NSString stringWithFormat:@"%@",[[arrTemp objectAtIndex:0] valueForKey:@"Value"]];

  }

这篇关于按顺序获取plist数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆