iOS使用OHMySQL对接MySQL时NSError静态分配报错如何修复
OHMySQL编译报错修复方案
1. Interface type cannot be statically allocated 错误修复
该错误属于Objective-C基础语法问题:所有继承自NSObject的类都必须通过指针声明、在堆上分配内存,不支持栈静态分配。你修改为NSError *error;的操作是正确的,修改后该错误就会解决,正确代码片段如下:
OHMySQLQueryRequest *query = [OHMySQLQueryRequestFactory INSERT:@"tasks" set:@{ @"name": @"Something", @"description": @"new task" }]; NSError *error; [queryContext executeQueryRequest:query error:&error];
额外注意:原代码里字段keydesctiption拼写错误,正确应为description,否则会出现插入字段不匹配的运行时错误
2. framework not found 错误修复
按以下步骤排查即可:
- 检查集成方式:
- 若使用CocoaPods集成:确认Podfile中已添加
pod 'OHMySQL',且执行过pod install命令,后续编译必须打开项目根目录下后缀为.xcworkspace的文件,不能打开原来的.xcodeproj文件 - 若手动集成:确认OHMySQL的framework文件已添加到项目的「General > Frameworks, Libraries, and Embedded Content」列表中,同时framework的存放路径已正确配置到「Build Settings > Framework Search Paths」
- 若使用CocoaPods集成:确认Podfile中已添加
- 检查链接参数:在「Build Settings > Other Linker Flags」中添加
-ObjC参数,避免OC类别方法无法识别引发的框架相关报错 - 清理缓存:按
Command+Shift+K清理构建缓存后重新编译
内容的提问来源于stack exchange,提问作者ToothFairy
相关产品推荐
相关产品推荐

