5St*_*yan 1 dictionary objective-c plist
我有两个问题.第一个问题是关于plist中使用的字典数据类型.
我有几个类方法返回特定的浮点数.我不想在代码中对它们进行硬编码,而是将它们放在plist中,以防它们发生变化.这里有几个类方法:
+ (double) returnMinUsableFloatNumber
{
return 0.005;
}
+ (double) returnMaxUsableFloatNumber
{
return 129.11
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个plist并使用字典保存它,我创建了几个键:"minNumber"和"maxNumber".但是,值的唯一数据类型是"Bool,Data,Date,Number,String".该数字是一个整数,并切断输入的任何小数.虽然完全可以只存储为字符串并稍后转换为double,但是可以在plist字典中存储double作为值以消除此步骤吗?
此外,如何访问此字典,因为这些是类方法,并且不能使用字典实例变量来初始化plist中使用的字典.
例如:
+ (double) returnMinUsableFloatNumber
{
return \\ value returned from key "minNumber"
}
Run Code Online (Sandbox Code Playgroud)
您需要将NSNumber值存储在<real>标记中的plist中:
<?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">
<dict>
<key>MinUsableFloatNumber</key>
<real>0.005</real>
<key>MaxUsableFloatNumber</key>
<real>129.11</real>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过初始化NSDictionaryplist文件的内容来阅读它们.您的方法将如下所示:
+ (double) returnMinUsableFloatNumber {
NSDictictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:@"filename.plist"];
return [[dict objectForKey:@"MinUsableFloatNumber"] doubleValue];
}
+ (double) returnMaxUsableFloatNumber {
NSDictictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:@"filename.plist"];
return [[dict objectForKey:@"MaxUsableFloatNumber"] doubleValue];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3049 次 |
| 最近记录: |