Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我正在从sqlite的xcode表中提取数据,我只想在数组中插入id列_Ios_Xcode_Sqlite - Fatal编程技术网

Ios 我正在从sqlite的xcode表中提取数据,我只想在数组中插入id列

Ios 我正在从sqlite的xcode表中提取数据,我只想在数组中插入id列,ios,xcode,sqlite,Ios,Xcode,Sqlite,在上面的代码中,我希望将所有ID从数据库中提取出来,并使用所有ID创建一个类似于_maintTitle的数组。您应该将标题存储在数据库中,这样可以在某些数据库(sqlite除外)上实现最大的灵活性和一致性,数据库引擎可以通过对照titles表检查info.id列来确保该列有效: 然后你可以一下子选择身份证和头衔 CREATE TABLE titles ( id INTEGER PRIMARY KEY, title TEXT ); INSERT INTO titles (id,

在上面的代码中,我希望将所有ID从数据库中提取出来,并使用所有ID创建一个类似于_maintTitle的数组。

您应该将标题存储在数据库中,这样可以在某些数据库(sqlite除外)上实现最大的灵活性和一致性,数据库引擎可以通过对照titles表检查info.id列来确保该列有效:

然后你可以一下子选择身份证和头衔

CREATE TABLE titles (
    id INTEGER PRIMARY KEY,
    title TEXT
);

INSERT INTO titles (id, title) VALUES (1, 'Title 1');
INSERT INTO titles (id, title) VALUES (2, 'Title 2');
INSERT INTO titles (id, title) VALUES (3, 'Title 3');
INSERT INTO titles (id, title) VALUES (4, 'Title 4');
INSERT INTO titles (id, title) VALUES (5, 'Title 5');
INSERT INTO titles (id, title) VALUES (6, 'Title 6');
INSERT INTO titles (id, title) VALUES (7, 'Title 7');
INSERT INTO titles (id, title) VALUES (8, 'Title 8');
不要忘记ORDERBY子句,因为您希望在整个应用程序生命周期内保持一致的顺序

您发布的代码也是次优的:

SELECT i.id, t.title
FROM info i, titles t
WHERE t.id = i.id
ORDER BY i.id ASC;

这本书的主要标题来自哪里?它也在数据库中吗?不,它只是一个带有常量值的staic数组。什么ID?我们看不到您的查询,我们看不到数据库布局,我们看不到任何名称类似id的内容。好的,我看到查询隐藏在那里,格式不正确。可能最好避免名称id。@HotLicks我不认为它有什么害处,只要OP明白它不应该被用作host code.SQLite中的变量名称。
SELECT i.id, t.title
FROM info i, titles t
WHERE t.id = i.id
ORDER BY i.id ASC;
NSString *query = @"<the statement above>";
self.arrPeopleInfo = [self.dbManager loadDataFromDB:query];