Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

bluehill

macrumors newbie
Original poster
Feb 5, 2011
22
0
Can any one give alternative on this...

I have a table view with indexing, with each section having related records like Section A will have records starting with A and like that….

Thus the array format is like
Code:
[
 [Ab,Ac,Ad,Ae,….],
 [Ba,Bb,Bc,Bd,….],
 ……….
 ]

If i use threads n do lazy loading with User interface visible only starting records will be loaded initially, say list of A's & B's record are loaded.
Now if the user click "z" (tableview with indexing) he will not be able to view records related to z unless the thread has executed and table is reloaded.

Here is the code

Code:
static sqlite3 *database = nil;
static sqlite3_stmt *selectStmt = nil;
static sqlite3_stmt *selectThreadStmt = nil;

NSOperationQueue *queue = [NSOperationQueue new];
	

    NSInvocationOperation *operation1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(showSortedContactsList) object:nil];

    NSInvocationOperation *operation2 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector (showSortedFavContactsList) object:nil];

  /* Add the operation to the queue */
	[queue addOperation:operation1];
    [queue addOperation:operation2];
    
    [operation1 release];
	[operation2 release];
	[queue release];
Code:
+(void)showSortedContactsList{
	
	NSMutableString *sqlnonalphnum=[NSMutableString stringWithFormat:@"Select S_id,S_name,S_state,S_city from Supplier where "];
	NSLog(@"Dataload");
	for (int i=65; i<91;i++) {
		//NSMutableArray *tempArray=[[NSMutableArray alloc]init];
		
		[sqlnonalphnum appendFormat:@"S_name not like '%c%%' and ",i];
		
		NSString *sql = [NSString stringWithFormat:@"select S_id,S_name,S_state,S_city from Supplier where S_name like '%c%%'",i];
		
		[Dictionary executeAddGroup:sql];
	}
	NSString *sqlnonan = [NSString stringWithFormat:@"%@%@",[sqlnonalphnum substringToIndex:[sqlnonalphnum length]-4],@"order by s_name"];
	
	[Dictionary executeAddGroup:sqlnonan];
}

+(void)executeAddGroup:(NSString*)sql{
	
	const char *sqlchar = [sql UTF8String];
	
	if(sqlite3_prepare_v2(database, sqlchar, -1, &selectThreadStmt, NULL) == SQLITE_OK) {
		
		NSMutableArray *tempArray=[[NSMutableArray alloc]init];
		while(sqlite3_step(selectThreadStmt) == SQLITE_ROW) {
			
			int sid = (int)sqlite3_column_int(selectThreadStmt, 0);
			NSString *snm = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectThreadStmt, 1)];
			NSString *sstate = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectThreadStmt, 2)];
			NSString *scity = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectThreadStmt, 3)];
			
			SupplierQuickInfo *sqinfo = [[SupplierQuickInfo alloc]init];
			sqinfo.ssid = sid;
			sqinfo.sname = snm;
			sqinfo.sstate=sstate;
			sqinfo.scitysite=scity;
			[tempArray addObject:sqinfo];
			[sqinfo release];			
		}
			[listOfContacts addObject:tempArray];
		
		[tempArray release];
		selectThreadStmt=nil;
		
	}	
}
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.