Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
Objective c 我只能调用labels.firstText数组来获取第一个字母并返回行。我相信我会解决的。:-) NSString *alphabet = [arrayIndex objectAtIndex:[indexPath section]]; _Objective C_Uitableview_Nsmutablearray_Nsindexpath_Sections - Fatal编程技术网

Objective c 我只能调用labels.firstText数组来获取第一个字母并返回行。我相信我会解决的。:-) NSString *alphabet = [arrayIndex objectAtIndex:[indexPath section]];

Objective c 我只能调用labels.firstText数组来获取第一个字母并返回行。我相信我会解决的。:-) NSString *alphabet = [arrayIndex objectAtIndex:[indexPath section]]; ,objective-c,uitableview,nsmutablearray,nsindexpath,sections,Objective C,Uitableview,Nsmutablearray,Nsindexpath,Sections,我只能调用labels.firstText数组来获取第一个字母并返回行。我相信我会解决的。:-) NSString *alphabet = [arrayIndex objectAtIndex:[indexPath section]]; //---get all of First array's beginning with the letter--- NSPredicate *predicate = [NSPredicate

我只能调用labels.firstText数组来获取第一个字母并返回行。我相信我会解决的。:-)
NSString *alphabet = [arrayIndex objectAtIndex:[indexPath section]];
            //---get all of First array's beginning with the letter---
            NSPredicate *predicate =
            [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", alphabet];
            NSArray *firstArray = [First filteredArrayUsingPredicate:predicate]; 
            NSArray *secondArray = [Second filteredArrayUsingPredicate:predicate]; 

    if ([FirstArray count]>0) {
        //---extract the relevant state from the states object---
        NSString *cellValue = [firstArray objectAtIndex:indexPath.row];



      //<--This line throws and error assuming it is trying to find the first letter to return the detail text -->  
    NSString *cellValueA = [secondArray objectAtIndex:indexPath.row];
//Returns value from first section and row in all section//
            //NSString *cellValueA = [Second objectAtIndex:indexPath.row]; 
            cell.textLabel.text = cellValue;
            cell.detailTextLabel.text = cellValueA;
            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        }    
-(void)loadSQL {
    // Path to the database
    NSString* dbPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"DATABASE_NAME.sqlite"];
    NSLog(@"databasePath: %@",dbPath);
    sqlite3 *database;
    NSString *firstString;
    NSString *secondString;

    // Open the database
    if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) {
        NSString *querySQL = [NSString stringWithFormat: 
                              @"SELECT * FROM songs WHERE items LIKE %@ ", viewItems];

        const char *sql = [querySQL UTF8String];

        sqlite3_stmt *compiledStmt;
        // Fetch all names
        if (sqlite3_prepare_v2(database, sql, -1, &compiledStmt, NULL) == SQLITE_OK) {
            // Append each name
            while (sqlite3_step(compiledStmt) == SQLITE_ROW) {

                const char* cFirst = (char*)sqlite3_column_text(compiledStmt, 2);
                        const char* cSecond = (char*)sqlite3_column_text(compiledStmt, 3);

                if (cFirst == NULL)
                    // There should not be a NULL name
                    NSLog(@"Null name!!");

                else {
                firstString = [NSString stringWithUTF8String:cName];
                            secondString = [NSString stringWithUTF8String:cArtist];

                [First addObject:firstString];
                [Second addObject:secondString];


                    //[First release];
                    //[Second release];
                }
            }
            sqlite3_finalize(compiledStmt); // Cleanup the statement
        }
        else {
            NSLog(@"Error retrieving data from database.");
        }
        sqlite3_close(database);
    }
    else {
        NSLog(@"Error: Can't open database!");
    }

//Creating section with 1st letter of the First field//
    for (int i=0; i<[First count]-1; i++){
        //---get the first char of each state---
        char alphabet = [[First objectAtIndex:i] characterAtIndex:0];
        NSString *uniChar = [NSString stringWithFormat:@"%C", alphabet];
        //---add each letter to the index array---
        if (![arrayIndex containsObject:uniChar])
        {
            [arrayIndex addObject:uniChar];
        }
    }         
}





#pragma mark Table view methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    if (searching)
        return 1;
    else
        return [arrayIndex count];
}

//---set the title for each section---
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    if (searching)
        return nil;

    else        
        return [arrayIndex objectAtIndex:section];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (searching)
        return([searchedFirst count]);
    else{
        //return([First count]);
        NSString *alphabet = [songIndex objectAtIndex:section];
        NSPredicate *predicate =[NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", alphabet];
        NSArray *firstArray = [First filteredArrayUsingPredicate:predicate];
        return [firstArray count];

    }
}

//---set the index for the table---
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {

    if (searching) {
        return nil;
    }

    return arrayIndex;
}


//return the cell info
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];

    if(searching) {
        cell.textLabel.text =  [searchedFirst objectAtIndex:indexPath.row];
        cell.detailTextLabel.text = [searchedSecond objectAtIndex:indexPath.row];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }
    else{
        //---get the letter in the current section---
        NSString *alphabet = [arrayIndex objectAtIndex:[indexPath section]];
        //---get all states beginning with the letter---
        NSPredicate *predicate =
        [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", alphabet];
        NSArray *firstArray = [First filteredArrayUsingPredicate:predicate]; 
        NSArray *secondArray = [Second filteredArrayUsingPredicate:predicate]; 

        if ([songArray count]>0) {
            NSString *firstValue = [firstArray objectAtIndex:indexPath.row];
            NSString *secondValue = [secondArray objectAtIndex:indexPath.row];

            cell.textLabel.text = firtValue;
            cell.detailTextLabel.text = secondValue;
            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        }

    }
    return cell;


}
   - (NSUInteger)indexOfObject:(id)anObject
// CellLabels.h
#import <Foundation/Foundation.h>

@interface CellLabels : NSObject
@property (nonatomic, copy) NSString *firstText;
@property (nonatomic, copy) NSString *secondText;
@end

//CellLabels.m
#import "CellLabels.h"

@implementation CellLabels
@synthesize firstText = _firstText;
@synthesize secondText = _secondText;
@end
[First addObject:firstString];
[Second addObject:secondString];
CellLabels *labels = [[CellLabels alloc] init];
labels.first = firstString;
labels.second = secondString;
[cellData addObject:labels];
CellLabels *labels = [filteredArray objectAtIndex:indexPath.row];
cell.textLabel.text = labels.firstText;
cell.detailTextLabel.text = labels.secondText;