gpt4 book ai didi

iphone - 如何处理 plist 中的浮点值

转载 作者:太空狗 更新时间:2023-10-30 03:57:23 24 4
gpt4 key购买 nike

我正在从网络服务器读取一个 plist,它是用一些 php 生成的。当我将其读入我的 iphone 应用程序中的 NSArray,然后使用 NSLog 将 NSArray 吐出以检查它时,我看到浮点值被视为字符串。我希望将“距离”值视为数字而不是字符串。这个 plist 显示在一个 TableView 中,它可以按距离排序,但问题是距离被排序为一个字符串,所以我得到了一些有趣的排序结果。

我能否将 NSArray 中的字符串的距离值转换为 float ?或者也许有一个更简单的解决方案,比如调整 plist 定义,或者 NSMutableURLRequest 代码中的某些内容?

我的 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">
<array>
<dict>
<key>name</key>
<string>Pizza Joint</string>
<key>distance</key>
<string>2.1</string>
</dict>
<dict>
<key>name</key>
<string>Burger Kang</string>
<key>distance</key>
<string>5</string>
</dict>
</array>
</plist>

将其读入 NSArray 后,每个 NSLog 看起来像这样:

    result: (
{
distance = "2.1";
name = "Pizza Joint";
},
{
distance = 5;
name = "Burger Kang";
}
)

这是检索 plist 的 Objective-C 代码:

// Set up url request
// postData and postLength are left out, but I can post in this question if needed.
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"http://mysite.com/get_plist.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];


NSError *error;
NSURLResponse *response;
NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *string = [[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding];
// libraryContent is an NSArray
self.libraryContent = [string propertyList];
NSLog(@"result: %@", self.libraryContent);

最佳答案

您可以在 plist 文件中使用 real 键类型,例如:

<?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>value</key>
<real>1</real>
</dict>
</plist>

关于iphone - 如何处理 plist 中的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2634400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com