我正在尝试学习 iOs 编程。我认为这是一个有点反向的问题。
我刚刚在 youtube 上完成了一个教程,使用 Xcode 创建一个简单的 iPhone 应用程序,该应用程序将允许您存储、列出和删除 SQLite3 数据库中的数据(因为我想要生成的应用程序需要一个数据库)。
然而,发布视频的家伙似乎没有解释他这样做的“原因”,所以我现在试图理解每段代码的作用 (我有 PHP 和 SQL Web 编程背景,因此我了解访问数据库、调用数据行等以在网站上显示内容。)
我不太明白这个 iOs 位的一部分是使用的 %s 和 %d 值,因为它们似乎没有在任何地方声明。
代码是;
if(sqlite3_open([dbPathString UTF8String], &personDB)==SQLITE_OK) {
NSString *inserStmt = [NSString stringWithFormat:@"INSERT INTO PERSONS(NAME,AGE) values ('%s', '%d')",[self.nameField.text UTF8String],[self.ageField.text intValue]];
现在 %s 和 %d 清楚地从 self.nameField 和 self.ageField 中获取了它们的值。但这意味着我只能将两个值提交到表中?或者还有其他值的百分比,但肯定最多有 26。
如果您能给出任何解释,我将不胜感激。
此外,有人对其他全面解释的学习 iOS 编码的方法有任何建议吗?特别是如果您是第一次学习 iOS 编程且之前 C 编程技能有限的初学者。 我正在寻找的区域是创建一个应用程序,该应用程序将存储一些文本字段和图像,这些文本字段和图像将存储在数据库中,图像要么存储在数据库中,要么作为链接并适当命名。 我希望能够操作图像来调整其大小,以便针对 iPhone 显示屏进行优化(不需要应用程序中的高清图像) 稍后我希望能够弄清楚如何将本地数据库 (sqlite3) 文件上传到在线存储(我自己的服务器或保管箱),或将其同步到 SQL 数据库(从最初的情况来看,只需导出文件会更好,将图像嵌入到一个字段中对于这个项目会更好,尽管我知道这不是正常的做事方式)
最佳答案
%s
和 %d
分别是空终止字符数组和有符号 32 位整数的格式说明符。您可以在String Programming Guide中找到有关说明符的详细信息。 。但是,您不应该为 SQLite 语句以这种方式格式化字符串,因为这会使您面临 SQL 注入(inject)的风险。相反,你应该 bind the values使用 ?
和适当的 sqlite3_bind*
函数。根据您的情况,您可以使用 sqlite3_bind_text
表示 NAME
,使用 sqlite3_bind_int
表示 AGE
。
关于ios - %s 和 %d 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13482528/