小编luc*_*anf的帖子

NSInteger以相反的顺序转换为字节数组

在过去的几个小时里,我一直在敲打我的脑袋,这似乎是一项非常简单的任务.

我的应用程序通过tcpip与服务器通信.该协议要求每个请求的前4个字节是流的长度,顺序相反.例如,如果长度为13,我需要提供(十进制){0,0,0,13}; 如果它是300,我需要提供{0,0,44,256}.然后,实际数据如下.

显然,这在Java中是非常简单的,在VB中也是如此(例如BitConverter.GetBytes(sendString.Length).Reverse().ToArray()).但是在obj-c中我无法使其工作,我已经尝试过NSString/NSData/NSArray之间的各种转换,没有运气.

提前致谢!

bytearray objective-c

2
推荐指数
1
解决办法
1931
查看次数

根据列优先级选择记录

首先,这个问题的标题是可怕的,但我没有找到更好的方式来描述我的问题.

这可能是一种非常简单的方法,但我无法理解.这与这个问题非常相似,但是我在sqlite3(iOS)上运行,所以我怀疑我的选项更加有限.

我有一张包含产品记录的表格.所有记录都有一个ID(注意:我不是在谈论行ID,而是每个产品唯一的标识号).某些产品可能在表中有两个条目(两个具有相同的ID).唯一的区别在于一个特殊的列(假设列COLOR可以是RED或GREEN).

我想要做的是根据COLOR的值创建一个独特产品列表,如果同一产品同时存在GREEN和RED记录,则优先选择GREEN.

简而言之,如果我有以下情况:

id       PRODUCT ID    COLOUR
1        1001          GREEN
2        1002          GREEN
3        1002          RED
4        1003          RED
Run Code Online (Sandbox Code Playgroud)

我希望我的SELECT返回第1,2和4行.我怎样才能实现这一点?

我目前的方法是使用单独的表,并手动进行连接,但显然这是一个非常糟糕的主意.

注:我试图使用相同的方法从这里:

SELECT * 
  FROM xx
 WHERE f_COLOUR = "GREEN"
UNION ALL
SELECT * 
  FROM xx 
 WHERE id not in (SELECT distinct id 
                    FROM xx 
                   WHERE f_COLOUR = "GREEN");
Run Code Online (Sandbox Code Playgroud)

但我得到的结果是1,2,3,4行而不是1,2,4行.我错过了什么?

编辑:还有一个问题:如何使用一部分记录,即.如果不是整个表我想过滤一些记录?

例如,如果我有SELECT*FROM table WHERE productID LIKE"1%"......我如何检索每个独特的产品,但仍然尊重颜色优先级(GREEN> RED)?

sql sqlite select

2
推荐指数
1
解决办法
1828
查看次数

标签 统计

bytearray ×1

objective-c ×1

select ×1

sql ×1

sqlite ×1