按顺序获取plist数据 [英] Getting plist data in a order
问题描述
我将数据保存在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屋!