- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面的方法代码是一个FOR循环,它从SQLite数据库构建26个数组(每个字母一个字母)。
问题在于,名为MultipleArray的返回数组仅返回16个数组,而不是应返回的25个。谁能发现为什么它不返回完整的25个数组?
编辑-问题似乎是由于字母Q在数据库(正确)中没有数据(数组正确),数组17(letterQ)没有内容。然后,构建mulptipleArray的语句在此点终止添加数组。有人知道我该如何解决吗?
谢谢。
- (NSMutableArray *)placesInfo {
NSString *tmpLike = [[NSString alloc] init];
multipleArray = [[NSMutableArray alloc] init];
for (int i = 0; i < 26; i++) {
NSMutableArray *retval = [[[NSMutableArray alloc] init] autorelease];
tmpLike = @"";
switch (i) {
case 0:
tmpLike = @"A";
break;
case 1:
tmpLike = @"B";
break;
case 2:
tmpLike = @"C";
break;
case 3:
tmpLike = @"D";
break;
case 4:
tmpLike = @"E";
break;
case 5:
tmpLike = @"F";
break;
case 6:
tmpLike = @"G";
break;
case 7:
tmpLike = @"H";
break;
case 8:
tmpLike = @"I";
break;
case 9:
tmpLike = @"J";
break;
case 10:
tmpLike = @"K";
break;
case 11:
tmpLike = @"L";
break;
case 12:
tmpLike = @"M";
break;
case 13:
tmpLike= @"N";
break;
case 14:
tmpLike = @"O";
break;
case 15:
tmpLike = @"P";
break;
case 16:
tmpLike = @"Q";
break;
case 17:
tmpLike = @"R";
break;
case 18:
tmpLike = @"S";
break;
case 19:
tmpLike = @"T";
break;
case 20:
tmpLike = @"U";
break;
case 21:
tmpLike = @"V";
break;
case 22:
tmpLike = @"W";
break;
case 23:
tmpLike = @"X";
break;
case 24:
tmpLike = @"Y";
break;
case 25:
tmpLike = @"Z";
break;
default:
break;
}
NSString *query = [[NSString alloc] initWithFormat: @"SELECT Name, Description, Postcode, AddressLine1, ImageURL, Free, Area, OpeningTimes, NearestTube, Cost,UniqueID, URL, Number, FirstLetter FROM MainDetails WHERE FirstLetter = '%@%'",tmpLike];
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, nil)
== SQLITE_OK) {
while (sqlite3_step(statement) == SQLITE_ROW) {
char *nameChars = (char *) sqlite3_column_text(statement, 0);
char *desChars = (char *) sqlite3_column_text(statement, 1);
char *postChars = (char *) sqlite3_column_text(statement, 2);
char *addyChars = (char *) sqlite3_column_text(statement, 3);
char *imageChars = (char *) sqlite3_column_text(statement, 4);
char *freeChars = (char *) sqlite3_column_text(statement, 5);
char *areaChars = (char *) sqlite3_column_text(statement, 6);
char *openChars = (char *) sqlite3_column_text(statement, 7);
char *nearChars = (char *) sqlite3_column_text(statement, 8);
char *costChars = (char *) sqlite3_column_text(statement, 9);
int uniqueID = sqlite3_column_int(statement, 10);
char *urlChars = (char *) sqlite3_column_text(statement, 11);
char *numberChars = (char *) sqlite3_column_text(statement, 12);
NSString *name = [[NSString alloc] initWithUTF8String:nameChars];
NSString *description = [[NSString alloc] initWithUTF8String:desChars];
NSString *postcode = [[NSString alloc] initWithUTF8String:postChars];
NSString *address = [[NSString alloc] initWithUTF8String:addyChars];
NSString *image = [[NSString alloc] initWithUTF8String:imageChars];
NSString *free = [[NSString alloc] initWithUTF8String:freeChars];
NSString *area = [[NSString alloc] initWithUTF8String:areaChars];
NSString *openT = [[NSString alloc] initWithUTF8String:openChars];
NSString *near = [[NSString alloc] initWithUTF8String:nearChars];
NSString *cost = [[NSString alloc] initWithUTF8String:costChars];
NSString *url = [[NSString alloc] initWithUTF8String:urlChars];
NSString *number = [[NSString alloc] initWithUTF8String:numberChars];
PlaceObject *info = [[PlaceObject alloc]
initWithUniqueID: uniqueID name : name description:description postCode:postcode addressOne : address image:image free:free area:area openingTimes:openT nearestTube:near cost:cost url:url number:number];
[retval addObject:info];
int x= [retval count];
NSLog(@"%d",i);
if (x ==0) {
NSLog(@"No content");
}
switch (i) {
case 0:
letterA = retval;
break;
case 1:
letterB = retval;
break;
case 2:
letterC = retval;
break;
case 3:
letterD = retval;
break;
case 4:
letterE = retval;
break;
case 5:
letterF = retval;
break;
case 6:
letterG = retval;
break;
case 7:
letterH = retval;
break;
case 8:
letterI = retval;
break;
case 9:
letterJ = retval;
break;
case 10:
letterK = retval;
break;
case 11:
letterL = retval;
break;
case 12:
letterM = retval;
break;
case 13:
letterN = retval;
break;
case 14:
letterO = retval;
break;
case 15:
letterP = retval;
break;
case 16:
letterQ = retval;
break;
case 17:
letterR = retval;
break;
case 18:
letterS = retval;
break;
case 19:
letterT = retval;
break;
case 20:
letterU = retval;
break;
case 21:
letterV = retval;
break;
case 22:
letterW = retval;
break;
case 23:
letterX = retval;
break;
case 24:
letterY = retval;
break;
case 25:
letterZ = retval;
break;
default:
break;
}
[name release];
query = @"";
[query release];
[description release];
[url release];
[number release];
[postcode release];
[address release];
[image release];
[free release];
[area release];
[openT release];
[near release];
[cost release];
[info release];
}
sqlite3_finalize(statement);
}
}
tmpLike = @"";
[tmpLike release];
multipleArray = [NSMutableArray arrayWithObjects: letterA, letterB, letterC, letterD, letterE, letterF, letterG, letterH, letterI, letterJ, letterK, letterL, letterM, letterN, letterO,letterP, letterQ, letterR, letterS, letterT, letterU, letterV, letterW, letterX, letterY, letterZ, nil];
int x= [multipleArray count];
NSLog(@"Mulptilpe Array Contents: %d", x);
NSLog(@"%@",multipleArray);
return multipleArray;
}
最佳答案
编辑-问题似乎是由于字母Q在数据库(正确)中没有数据(数组正确),数组17(letterQ)没有内容。然后,构建mulptipleArray的语句在此点终止添加数组。有人知道我该如何解决吗?
如果需要在数组中插入nil
值,请使用[NSNull null]
。这个值没有什么神奇的。这只是一个对象,您以后可以对其进行测试。您不能将真实的nil
插入到NSMutableArray
中。
关于iphone - For循环和数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7583691/
我正在尝试创建一个包含 int[][] 项的数组 即 int version0Indexes[][4] = { {1,2,3,4}, {5,6,7,8} }; int version1Indexes[
我有一个整数数组: private int array[]; 如果我还有一个名为 add 的方法,那么以下有什么区别: public void add(int value) { array[va
当您尝试在 JavaScript 中将一个数组添加到另一个数组时,它会将其转换为一个字符串。通常,当以另一种语言执行此操作时,列表会合并。 JavaScript [1, 2] + [3, 4] = "
根据我正在阅读的教程,如果您想创建一个包含 5 列和 3 行的表格来表示这样的数据... 45 4 34 99 56 3 23 99 43 2 1 1 0 43 67 ...它说你可以使用下
我通常使用 python 编写脚本/程序,但最近开始使用 JavaScript 进行编程,并且在使用数组时遇到了一些问题。 在 python 中,当我创建一个数组并使用 for x in y 时,我得
我有一个这样的数组: temp = [ 'data1', ['data1_a','data1_b'], ['data2_a','data2_b','data2_c'] ]; // 我想使用 toStr
rent_property (table name) id fullName propertyName 1 A House Name1 2 B
这个问题在这里已经有了答案: 关闭13年前。 Possible Duplicate: In C arrays why is this true? a[5] == 5[a] array[index] 和
使用 Excel 2013。经过多年的寻找和适应,我的第一篇文章。 我正在尝试将当前 App 用户(即“John Smith”)与他的电子邮件地址“jsmith@work.com”进行匹配。 使用两个
当仅在一个边距上操作时,apply 似乎不会重新组装 3D 数组。考虑: arr 1),但对我来说仍然很奇怪,如果一个函数返回一个具有尺寸的对象,那么它们基本上会被忽略。 最佳答案 这是一个不太理
我有一个包含 GPS 坐标的 MySQL 数据库。这是我检索坐标的部分 PHP 代码; $sql = "SELECT lat, lon FROM gps_data"; $stmt=$db->query
我需要找到一种方法来执行这个操作,我有一个形状数组 [批量大小, 150, 1] 代表 batch_size 整数序列,每个序列有 150 个元素长,但在每个序列中都有很多添加的零,以使所有序列具有相
我必须通过 url 中的 json 获取文本。 层次结构如下: 对象>数组>对象>数组>对象。 我想用这段代码获取文本。但是我收到错误 :org.json.JSONException: No valu
enter code here- (void)viewDidLoad { NSMutableArray *imageViewArray= [[NSMutableArray alloc] init];
知道如何对二维字符串数组执行修剪操作,例如使用 Java 流 API 进行 3x3 并将其收集回相同维度的 3x3 数组? 重点是避免使用显式的 for 循环。 当前的解决方案只是简单地执行一个 fo
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我有来自 ASP.NET Web 服务的以下 XML 输出: 1710 1711 1712 1713
如果我有一个对象todo作为您状态的一部分,并且该对象包含数组列表,则列表内部有对象,在这些对象内部还有另一个数组listItems。如何更新数组 listItems 中 id 为“poi098”的对
我想将最大长度为 8 的 bool 数组打包成一个字节,通过网络发送它,然后将其解压回 bool 数组。已经在这里尝试了一些解决方案,但没有用。我正在使用单声道。 我制作了 BitArray,然后尝试
我们的数据库中有这个字段指示一周中的每一天的真/假标志,如下所示:'1111110' 我需要将此值转换为 boolean 数组。 为此,我编写了以下代码: char[] freqs = weekday
我是一名优秀的程序员,十分优秀!