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 从数组中设置自定义UITableViewCell的文本_Ios_Cocoa Touch_Uitableview - Fatal编程技术网

Ios 从数组中设置自定义UITableViewCell的文本

Ios 从数组中设置自定义UITableViewCell的文本,ios,cocoa-touch,uitableview,Ios,Cocoa Touch,Uitableview,目前,我使用以下方法填充单元格: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // builds the settingsView tableView if (menuList) { static NSString *cellIdentifier = @"coachingCell";

目前,我使用以下方法填充单元格:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // builds the settingsView tableView
    if (menuList) {
        static NSString *cellIdentifier = @"coachingCell";

        UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
        if (!contentLoaded) {
            numberOfCells = 0;
        }
        if (contentLoaded) {
            [cell.textLabel setText:[names objectAtIndex:numberOfCells]];
            NSLog(@"Entries: %@", [names objectAtIndex:numberOfCells]);
            if (numberOfCells == [names count]) {
                numberOfCells = 0;
            }
        numberOfCells ++;
        }
        //add a switch
        coachingSwitch = [[UISwitch alloc] initWithFrame:CGRectZero];
        cell.accessoryView = coachingSwitch;
        [coachingSwitch setOn:YES];

        return cell;
    }
    ...
但是如果我将所有对象滚动到底部,然后将一个对象滚动到顶部,则会出现错误。这是因为我在计数器上填充单元格:
numberOfCells

现在我的问题是:如何解决这个问题,以便在数组中实际迭代右
indexath.section
indexath.row

名称
数组包含:

2012-12-09 16:34:22.373 Test[18817:c07] Entries: Mein Bauchumfang
2012-12-09 16:34:22.375 Test[18817:c07] Entries: Mein Gewicht
2012-12-09 16:34:22.375 Test[18817:c07] Entries: Mein Entspannungsniveau
2012-12-09 16:34:22.376 Test[18817:c07] Entries: Häufigkeit der Entspannungsmomente
2012-12-09 16:34:22.377 Test[18817:c07] Entries: Rauchverhalten
2012-12-09 16:34:22.378 Test[18817:c07] Entries: Verlangen nach einer Zigarette
2012-12-09 16:34:22.378 Test[18817:c07] Entries: Systolischer Wert
2012-12-09 16:34:22.379 Test[18817:c07] Entries: Diastolischer Wert
2012-12-09 16:34:23.713 Test[18817:c07] Entries: Meine bewusste Ernährung mit Diabetes
2012-12-09 16:34:23.964 Test[18817:c07] Entries: Meine Blutzucker-Werte
2012-12-09 16:34:25.384 Test[18817:c07] Entries: Mein Befinden
2012-12-09 16:34:25.584 Test[18817:c07] Entries: Meine Aktivitäten
这是我也可以使用的多维数组:

2012-12-09 17:23:06.891 stuff[19161:c07] ArrayList: (
    {
    "Bauchumfang & Gewicht" =         (
        "Mein Bauchumfang",
        "Mein Gewicht"
    );
    "Blutdruck & Puls" =         (
        "Systolischer Wert",
        "Diastolischer Wert"
    );
    "Blutzucker & Diabetes" =         (
        "Meine bewusste Ern\U00e4hrung mit Diabetes",
        "Meine Blutzucker-Werte"
    );
    "Mein Rauchverhalten" =         (
        Rauchverhalten,
        "Verlangen nach einer Zigarette"
    );
    "Meine Stimmung" =         (
        "Mein Befinden",
        "Meine Aktivit\U00e4ten"
    );
    "R\U00fccken & Bewegung" =         (
        "Umsetzung meiner R\U00fccken\U00fcbungen",
        "Das Befinden meines R\U00fcckens",
        "Meine sportlichen Aktivit\U00e4ten"
    );
    Schlafrhythmus =         (
        "Meine Schlafqualit\U00e4t",
        "Mein Energieniveau"
    );
    "Schrittz\U00e4hler" =         (
        "Meine Schritte"
    );
    "Stress & Entspannung" =         (
        "Mein Entspannungsniveau",
        "H\U00e4ufigkeit der Entspannungsmomente"
    );
}
)

为什么不直接使用indexPath.row而不是numberOfCells:

[cell.textLabel setText:[names objectAtIndex:indexPath.row]];
编辑:

您可以使用以下方法获得合适的数组索引:

int rowsUntilHere=indexPath.row;
 for (int i=0;i<indexPath.section;i++){
   rowsUntilHere+=[tableView numberOfRowsInSection:i];
   //rowsUntilNow++; //If the array contains the section titles too
 }

 [cell.textLabel setText:[names objectAtIndex:rowsUntilHere]];
int-rowsUntilHere=indexPath.row;

对于(int i=0;我是说每个部分都有一个单独的数组?还是所有部分都有一个多维数组?还是一个只列出所有内容而不以任何方式分解为部分的数组?目前我有包含每个entrie的NSMubableArray*名称(所有部分中的所有行)但是我也可以选择使用另一个多维数组(它存储:sectionName{“rowName”,“rowName”,“rowName”}sectionName2{“rowName2”,…}…)这不起作用!我知道常用的实现。但是indexPath.row只给我当前节的行。所以这在一维数组中不起作用。非常感谢,我一天都在处理这个问题!我使用了
rowsUntilHere+=[settingsTable numberOfRowsInSection:I]在你的例子中,一切都很顺利!