gpt4 book ai didi

php - NSData(if 语句)

转载 作者:行者123 更新时间:2023-11-29 10:39:08 25 4
gpt4 key购买 nike

我正在尝试过滤数据库中的搜索结果。

我在我的 iOS 应用程序中实现了一个条码扫描器。现在,当我扫描时,它会扫描条形码并发出警报。按钮索引 1 导致此 NSData 调用:

NSString *salesStr = @"http://10.0.0.1:";
salesStr = [salesStr stringByAppendingString:@"8080"];
salesStr = [salesStr stringByAppendingString:@"/barcode.php?password="];
salesStr = [salesStr stringByAppendingString:@"test"];
salesStr = [salesStr stringByAppendingString:@"&db="];
salesStr = [salesStr stringByAppendingString:@"testDB"];
salesStr = [salesStr stringByAppendingString:@"&barNum="];
salesStr = [salesStr stringByAppendingString:self.scannedItem];

NSURL * url = [NSURL URLWithString:salesStr];
NSData * data = [NSData dataWithContentsOfURL:url];

10.0.0.1:8080/barcode.php?password=test&db=testDB&barNum=0123456789012

所以我要做的是:如果扫描的项目不在数据库中,则数据库使用标识符 scanMissing 进行搜索;当然,如果扫描的项目在数据库中,则它会使用 scanSuccess

if(data == nil)
{

[self performSegueWithIdentifier:@"scanMissing" sender:self];

}
else
{

[self performSegueWithIdentifier:@"scanSuccess" sender:self];

}
}

我的问题是我不能使用 nil,因为还有一些字节仍在传输。当我设置断点时,我得到以下关于数据的信息:

数据 (_NSInlineData) 2 字节

我是否必须将 if 语句更改为 2 个字节才能使其工作?或者我该怎么办?

编辑:PHP 代码:

$host = "localhost";
$db = $_REQUEST['db'];
$user = "root";
$pass = $_REQUEST['password'];
$barcode = $_REQUEST['barNum'];

$connection = mysql_connect($host, $user, $pass);

//Check to see if we can connect to the server
if(!$connection)
{
die("Database server connection failed.");
}
else
{
//Attempt to select the database
$dbconnect = mysql_select_db($db, $connection);

//Check to see if we could select the database
if(!$dbconnect)
{
die("Unable to connect to the specified database!");
}
else
{
$query = "SELECT ITEM_ID, ITEM_Kitchen_Name FROM it_titem WHERE ITEM_ID=$barcode";
$resultset = mysql_query($query, $connection);

$records = array();

//Loop through all our records and add them to our array
while($r = mysql_fetch_assoc($resultset))
{
$records[] = $r;
}

//Output the data as JSON
echo json_encode($records);
}


}


?>

最佳答案

您的 PHP 代码输出一个 JSON 编码的数组。因此,最小的可能响应是 []。在任何情况下都不能为 nil

您可以尝试使用[] 来比较数据,或者您可以解码JSON 并检查数组的长度。第二种选择是迄今为止最可靠的恕我直言。

NSError *error = nil;
NSArray *results = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

if (error != nil)
{
// There was an error parsing the JSON, do whatever you want
}
else if (results.count == 0)
{
// no results
}
else
{
// results
}

(还没有测试过)。

关于php - NSData(if 语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25390271/

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