希望有人可以帮助我。我对 iOS 应用程序开发非常陌生,实际上我正在尝试为当地学校的职业日活动准备一些东西。
背景是我希望能够测试学生准确处理和输入数据的能力。
为了测试这一点,我想要一个我将部署到 iPad 上的应用程序,供他们在白天试用。非常简单的东西(我认为!)
到目前为止,我知道如何创建我的应用程序,将输入框放入并全部链接起来,并且已经研究出如何测试输入框中的输入是否与代码中的硬编码值正确,如下所示:
self.DealID = self.DealIDEntry.text;
NSString *Check1 = @"No";
NSString *DealIDString = self.DealID;
if ([DealIDString length] == 0) {
Check1 = @"No Deal ID Entered";
}
if([self.DealID isEqual: @"12345678"]) {
Check1 = @"Yes";
}
self.DealIDCheck.text = Check1;
我想要的是有一个可能的 DealID 表,每个都有 5-6 位相关数据(客户、货币等),然后当学生输入交易 ID 时,希望是正确的客户、货币等应用程序应通过“查找”plist 中的 DealID 并检查该 DealID 的客户值是否正确来进行检查。
我试过用字典来做到这一点:
NSBundle *bundle = [NSBundle mainBundle];
NSString *pListpath = [bundle pathForResource:@"TestTable" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:pListpath];
self.CustomerName = self.CustomerNameEntry.text;
NSString *Check2 = @"No";
NSDictionary *DealID = [dict valueForKey:self.DealID];
NSString *CustomerNameString = self.CustomerName;
if ([CustomerNameString length] == 0) {
Check2 = @"No Customer Name Entered";
}
if([self.CustomerName isEqual: [DealID objectForKey:@"CustomerName"]]) {
Check2 = @"Yes";
}
self.CustomerNameCheck.text = Check2;
可悲的是它不起作用,我怀疑我不知道如何正确加载 plist(或测试它是否已加载)或者我做错了!
编辑 2 - 感谢 Matt 在下面的帮助,我现在有了这段代码来加载我的 plist 作为目录目录,并可以查询给定子目录的相关对象。再次感谢马特!
//This loads the array of data
NSBundle* bundle = [NSBundle mainBundle];
NSString* plistPath = [bundle pathForResource:@"TestTable" ofType:@"plist"];
//Make large Dictionary
NSDictionary *TradeTable = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
NSLog(@"The count: %i", [TradeTable count]);
//Create relevant sub directory
NSDictionary *query = [TradeTable valueForKey:@"12345678"];
NSLog(@"The count: %i", [query count]);
//Query that subdirectory for the object in question
NSString *name = [query objectForKey:@"CustomerName"];
NSLog(name);
对于任何感兴趣的人,我的 plist 现在看起来像这样:
<dict>
<key>12345678</key>
<dict>
<key>CustomerID</key>
<integer>98765</integer>
<key>CustomerName</key>
<string>BigBank</string>
<key>CustomerBank</key>
<string>LittleBank</string>
<key>AmountinCCY</key>
<integer>75000</integer>
<key>CCY</key>
<string>GBP</string>
<key>AmountinUSD</key>
<integer>115000</integer>
<key>Date</key>
<integer>1</integer>
<key>Points</key>
<integer>5</integer>
</dict>
<key>12345679</key>
<dict>
<key>CustomerID</key>
<integer>98754</integer>
<key>CustomerName</key>
<string>CarShop</string>
<key>CustomerBank</key>
<string>BigBank</string>
<key>AmountinCCY</key>
<integer>25123</integer>
<key>CCY</key>
<string>EUR</string>
<key>AmountinUSD</key>
<integer>27000</integer>
<key>Date</key>
<integer>0</integer>
<key>Points</key>
<integer>4</integer>
</dict>
</dict>
</plist>
很抱歉罗嗦,只是想确保我提供了尽可能多的信息。
非常感谢任何人的帮助。菲尔