每天都写点东西出来 -- 第 10 天

介绍了一个iOS平台上的Sqlite数据库查询组件,支持多种查询结果类型并可相互转换,包括dictionary、array、arrayDictionary及arrayArray。

简述:这是一个 iOS 的 Sqlite 数据库的查询组件。比较简洁,而且只关注查询部分。


根据查询时指定要获取的类型得到指定的数据格式,本组件共提供四种结果类型。


idname
0A
1B


dictionary结果类型

{
    id = (0,1);
    name = (A,B)
}

array结果类型

(
    (0,1),
    (A,B)
)

arrayDictionary结果类型

(
    {
        id = 0;
        name = A;
    },
    {
        id = 1;
        name = B;
    }
)


arrayArray结果类型

(
    (0,A),
    (1,B)
)



dictionary、array、arrayDictionary、arrayArray 该四种结果类型可以相互转换。




代码如下:

//
//  MZCQuery.h
//  MZCKit
//
//  Created by yococo on 15/11/14.
//  Copyright (c) 2015年 yococo. All rights reserved.
//

#import <Foundation/Foundation.h>

#import <sqlite3.h>

#import "MZCQueryResult.h"

@interface MZCQuery : NSObject

@property(nonatomic,readonly) NSString* path;


+ (instancetype) defaultQuery;

+ (instancetype) defaultQueryWithPath:(NSString*) path;

- (instancetype) initWithPath:(NSString*) path;



#pragma mark -
- (MZCQueryResult*) queryResultWithSQl:(NSString*) sql Type:(MZCQueryResultType) type;

/*
 type 默认为 MZCQueryResultTypeArrayDictionary.
 */
- (MZCQueryResult*) queryResultWithSQl:(NSString*) sql;

@end


//
//  MZCQueryResult.h
//  MZCKit
//
//  Created by yococo on 15/11/14.
//  Copyright (c) 2015年 yococo. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef NS_ENUM(NSUInteger, MZCQueryResultType) {
    MZCQueryResultTypeDictionary,
    MZCQueryResultTypeArray,
    MZCQueryResultTypeArrayDictionary,
    MZCQueryResultTypeArrayArray,
};

@interface MZCQueryResult : NSObject

@property(nonatomic,readonly) MZCQueryResultType type;

@property(nonatomic,readonly) NSArray* fields;

@property(nonatomic,readonly) id result;


#pragma mark -
- (instancetype) initWithType:(MZCQueryResultType)type fields:(NSArray*)fields result:(id)result;


#pragma mark - 转换
//将对象 转换成 另一个类型的对象
- (MZCQueryResult*) resultByConvertToType:(MZCQueryResultType) type;

//将对象的结果 转换成 另一个类型的结果
- (id) convertToType:(MZCQueryResultType) type;

@end




















在充满仪式感的生活里,一款能传递心意的小工具总能带来意外惊喜。这款基于Java开发的满屏飘字弹幕工具,正是为热爱生活、乐于分享的你而来——它以简洁优雅的视觉效果,将治愈系文字化作灵动弹幕,在屏幕上缓缓流淌,既可以作为送给心仪之人的浪漫彩蛋,也能成为日常自娱自乐、舒缓心情的小确幸。 作为程序员献给crush的心意之作,工具的设计藏满了细节巧思。开发者基于Swing框架构建图形界面,实现了无边框全屏显示效果,搭配毛玻璃质感的弹幕窗口与圆润边角设计,让文字呈现既柔和又不突兀。弹幕内容精选了30条治愈系文案,从“秋的风很温柔”到“你值得所有温柔”,涵盖生活感悟、自我关怀、浪漫告白等多个维度,每一条都能传递温暖力量;同时支持自定义修改文案库,你可以替换成专属情话、纪念文字或趣味梗,让弹幕更具个性化。 在视觉体验上,工具采用柔和色调生成算法,每一条弹幕都拥有独特的清新配色,搭配半透明渐变效果与平滑的移动动画,既不会遮挡屏幕内容,又能营造出灵动治愈的氛围。开发者还优化了弹幕的生成逻辑,支持自定义窗口大小、移动速度、生成间隔等参数,最多可同时显示60条弹幕,且不会造成电脑卡顿;按下任意按键即可快速关闭程序,操作便捷无负担。 对于Java学习者而言,这款工具更是一份优质的实战参考。源码完整展示了Swing图形界面开发、定时器调度、动画绘制、颜色算法等核心技术,注释清晰、结构简洁,哪怕是初学者也能轻松理解。开发者在AI辅助的基础上,反复调试优化细节,解决了透明度控制、弹幕碰撞、资源占用等多个问题,这份“踩坑实录”也为同类项目开发提供了宝贵经验。 无论是想给喜欢的人制造浪漫惊喜,用满屏文字传递心意;还是想在工作间隙用治愈文案舒缓压力,或是作为Java学习的实战案例参考,这款满屏飘字弹幕工具都能满足你的需求。它没有复杂的操作流程,无需额外配置环境,下载即可运行,用最纯粹的设计传递最真挚的
基于你们的专业背景(STM32 + HAL 库、超声波、MQTT),把“已经会的东西”升级为“能落地的校园 IoT 产品”,最稳妥的路线是: “用 STM32 做终端 + MQTT 上云 + 手机/网页可视化”三步走,场景锁定“宿舍/教学楼”高频刚需,4 人 4 周可交付。下面给出 1 套主方案 + 2 套降级备份,保证无论时间充裕还是临时被课设冲爆,都能交出一个“能演示、能拍照、能答辩”的原型。 --- 一、主方案:Smart Rack – 会“说话”的实验室工具共享保管箱 (把“超声波避障”改成“超声波计数”,把“MQTT 上云”复用) 1. 解决痛点 实验室/社团的小工具(螺丝刀、热熔枪、万用表)丢,登记本没人写,管理员每周盘点头秃。 2. 系统架构 终端:STM32F103C8T6 + 超声波测距模块(检测工具是否在位) + RC522 RFID(谁借的) + ESP8266(MQTT 上云) 云端:免费 HiveMQ 公共 broker + Node-Red 做 2 小时速成仪表盘 客户端:手机网页(扫码开箱、实时查看在位状态、借用记录) 3. 硬件复用 & 增量 ① 超声波:小车项目里用来避障,这里固定在工具插槽顶部→“1 个插槽 = 1 个超声波”,距离 < X cm 判定“在位”。 ② 舵机:小车掉头用舵机,这里复用 1 个做“电子锁扣”,MQTT 收到开箱指令→舵机旋转 90° 开锁。 ③ ESP8266:暑期 MQTT 实践直接搬代码,改 topic 为 /smart rack/box01/status、/smart rack/box01/control。 ④ 新增:RC522 射频模块(20 元),OLED 0.96' 做本地提示。 4. 软件快速拼装 STM32 端: - 基于暑期 MQTT 工程,新增 JSON 组包:{"toolID":"A1","status":1,"borrower":"E19xxxx","timestamp":1699xxx} - 超声波 + 定时器 1 Hz 轮询,状态变化才发布,节省流量。 - 中断方式读 RFID,读到卡号即刻 publish /control,云端回传“success”才开锁。 网页端: - Node-Red 自带 dashboard,拖 5 个 switch 灯就能显示 5 个槽位状态;再拖 1 个 text input 扫码框,回车即 publish 开箱指令。 - 一键导出 CSV“本周借还记录”,给老师看数据。 5. 分工(4 人 × 3 周,留 1 周缓冲) A. 硬件整合 + 结构(3D 打印/激光切割盒子,亚克力 50 元) B. STM32 业务逻辑 + 超声波/RFID 驱动 C. ESP8266 MQTT 代码移植 + OLED 菜单 D. Node-Red 仪表盘 + 答辩 PPT + 视频剪辑 6. 演示效果 - 手机扫码→舵机“咔哒”开锁→OLED 显示“请取走热风枪” - 拿走 3 秒后超声波检测到空缺→网页红灯灭→记录自动生成 - 归还后绿灯亮→后台统计“本周最常借:斜口钳 27 次” 7. 可扩展亮点(如果提前做完) - 增加 SGP30 气体传感器→“热风枪使用完未关,温度高→ VOC 突增→推送微信提醒” - 边缘计算:STM32 本地保存 7 日志,断网恢复后自动补传。 --- 二、降级方案 A:Smart Desk Lamp – 占座/节能两用台灯 把超声波朝向座位,检测“是否有人”,MQTT 上报“座位占用率”,图书馆/自习室大屏可视化。 硬件完全不变,只改外壳和 topic,3 可出雏形,适合“期中考试周时间被榨干”时切换。 --- 三、降级方案 B:Smart Flower – 考研人桌面绿植监护 暑期小车底盘→改成“可移动花盆底座”,土壤湿度 + 光照 + DHT11,MQTT 推送到微信。 亮点:保留“小车”元素,让盆栽每天“晒太阳 2 小时自动退回阴影”,老师一眼看出“会动”的 IoT。 --- 四、时间倒排表(以主方案为例,11-16 交稿) Week0(现在-10/20) - 组队、提交报名表、官方 QQ 群打卡 - 淘宝下单:RC522×2、舵机×2、亚克力板、杜邦线、ESP8266 串口转接板 Week1(10/21-10/27) - 代码仓库搭好(GitHub private) - STM32 超声波 + RFID 驱动调通,能打印串口调试信息 - 3D/激光切割图纸定稿,外壳侧板先打样 Week2(10/28-11/3) - 整机组装,MQTT 能正常发 JSON - Node-Red 仪表盘初版上线,手机能远程开锁 - 拍摄 30 秒“功能预告”短视频,留素材 Week3(11/4-11/10- 稳定性测试:连续 24 h 跑,记录死机/掉线次数 - 补拍“完整演示”+“团队合照” - 设计报告同步写(模板见通知附件,先填“系统结构图+创新点”) Week4(11/11-11/16) - 剪 2 分钟决赛视频(B 站 1080P,加字幕) - PPT 12 页:痛点-方案-架构-创新-测试结果-未来展望 - 打包:代码 zip + 报告 PDF + 视频链接二维码,11-16 23:59 前发邮箱 --- 五、评委高分关键词(按评分标准 30/30/20/20) 创意:实验室工具管理痛点真实 → 用“超声波在位检测”替代传统重量/红外,低成本易批量。 技术:STM32+HAL、MQTT、JSON、Node-Red 全链路开源,答辩现场可手机远程演示。 效果:开箱→检测→统计,一步不少;网页实时灯亮灭,视觉冲击强。 团队:4 人专业对口,硬件/嵌入式/前端/文档分工明确,PPT 里放“甘特图+合照”。 --- 一句话总结 把“超声波避障小车”竖起来就变成“工具在位检测”,把“MQTT 暑期实践”搬过来就是“上云”,再给一个“扫码开锁”的仪式感,就能在 11 月 25 日现场让评委脱口而出:“这个好实用!”,你来评价分析一下kimi给的技术方案
10-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值