โปรแกรมบ นท ก ช อ และ อ เมล โดยจ ดเก บข อม ลลงไปท SQLite - PDF

Description
โปรแกรมบ นท ก ช อ และ อ เมล โดยจ ดเก บข อม ลลงไปท SQLite Application = Single View Application = Next Product Name = ContactLite, Devices = iphone, Use Storyboards, Use Automatic Reference Counting เล

Please download to get full document.

View again

of 31
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information
Category:

Arts & Architecture

Publish on:

Views: 16 | Pages: 31

Extension: PDF | Download: 0

Share
Transcript
โปรแกรมบ นท ก ช อ และ อ เมล โดยจ ดเก บข อม ลลงไปท SQLite Application = Single View Application = Next Product Name = ContactLite, Devices = iphone, Use Storyboards, Use Automatic Reference Counting เล อกไปท TARGETS = Build Pharses = + เล อก libsqlite3.dylib เล อก Add เป ดไฟล Contact.h #import Contact : NSObject NSString *pkid; NSString *name; NSString nonatomic)nsstring nonatomic)nsstring nonatomic)nsstring เป ดไฟล Contact.m #import วาง Navigation Bar, Table View, Table View Cell และ Bar Button Item ตาม ล าด บลงบนร ปด านล างน คล กไปท Navigation Bar แล วเปล ยนค าของ Title = Contact คล กไปท ป มตามร ปด านล าง Item แล วไปท ไอคอน Attribute เปล ยนค า Identifier = Add เล อกไปคล กท Table View Cell ตามร ปด านล างน แล วไปเปล ยนค าของ Style = Subtitle, Identifier = Cell เป ดไฟล ViewController.h ข นมา #import UIKit/UIKit.h #import sqlite3.h #import ViewController : UIViewController UITableViewDataSource, UITableViewDelegate NSArray (weak, nonatomic) IBOutlet UINavigationItem (weak, nonatomic) IBOutlet UITableView (nonatomic, retain) NSArray (strong, nonatomic) NSString (nonatomic) sqlite3 *contactdb; -(void)setupdatabase; -(void)loaddatabase; -(void)deletecontact:(nsstring เป ดไฟล ViewController.m ข นมา #import ViewController.h #import datalist, databasepath, navitem; -(void)setupdatabase // Get the documents directory NSArray *dirpaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docsdir = dirpaths[0]; // Build the path to the database file databasepath = [[NSString alloc] initwithstring: [docsdir NSFileManager *filemgr = [NSFileManager defaultmanager]; if ([filemgr fileexistsatpath: databasepath] == NO) const char *dbpath = [databasepath UTF8String]; if (sqlite3_open(dbpath, &contactdb) == SQLITE_OK) char *errmsg; const char *sql_stmt = CREATE TABLE IF NOT EXISTS CONTACTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, TEXT) ; if (sqlite3_exec(contactdb, sql_stmt, NULL, NULL, &errmsg)!= SQLITE_OK) to create table ); เป ดไฟล ViewController.m - (ต อ) -(void)loaddatabase NSMutableArray *data = [NSMutableArray array]; sqlite3_stmt *statement; NSString *querysql id, name, FROM contacts ; const char *query_stmt = [querysql UTF8String]; const char *dbpath = [databasepath UTF8String]; if (sqlite3_open(dbpath, &contactdb) == SQLITE_OK) sqlite3_prepare_v2(contactdb, query_stmt, -1, &statement, NULL); while (sqlite3_step(statement) == SQLITE_ROW) NSString *Id = [[NSString alloc]initwithutf8string:(const char *) sqlite3_column_text(statement, 0)]; NSString *name = [[NSString alloc]initwithutf8string:(const char *) sqlite3_column_text(statement, 1)]; NSString * = [[NSString alloc]initwithutf8string:(const char *) sqlite3_column_text(statement, 2)]; Contact *row = [[Contact alloc] init]; row.pkid = Id; row.name = name; row. = ; [data addobject:row]; datalist = [NSMutableArray arraywitharray:data]; sqlite3_finalize(statement); เป ดไฟล ViewController.m - (ต อ) - (void)viewdidload [super viewdidload]; navitem.leftbarbuttonitem = self.editbuttonitem; [self setupdatabase]; [self loaddatabase]; -(void)viewdidappear:(bool)animated [super viewdidappear:yes]; [self setupdatabase]; [self loaddatabase]; [tablev reloaddata]; - (void)didreceivememorywarning [super didreceivememorywarning]; // Dispose of any resources that can be recreated. -(NSInteger)tableView:(UITableView *)tableview numberofrowsinsection:(nsinteger)section return datalist.count; เป ดไฟล ViewController.m - (ต อ) -(UITableViewCell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath static NSString *cellid UITableViewCell *cell = [tableview dequeuereusablecellwithidentifier:cellid]; if (cell == nil) cell = [[UITableViewCell alloc] initwithstyle:uitableviewcellstylesubtitle reuseidentifier:cellid]; Contact *row = (Contact *)[datalist objectatindex:indexpath.row]; cell.textlabel.text = [NSString row.pkid, row.name]; cell.detailtextlabel.text = row. ; return cell; เป ดไฟล ViewController.m - (ต อ) -(void)tableview:(uitableview *)tableview commiteditingstyle: (UITableViewCellEditingStyle)editingStyle forrowatindexpath:(nsindexpath *)indexpath if (editingstyle == UITableViewCellEditingStyleDelete) Contact *row = [datalist objectatindex:indexpath.row]; NSMutableArray *array = [NSMutableArray arraywitharray:datalist]; [array removeobject:row]; datalist = array; [self deletecontact:row.pkid]; [tableview deleterowsatindexpaths:[nsarray arraywithobject:indexpath] withrowanimation:uitableviewrowanimationautomatic]; -(void)prepareforsegue:(uistoryboardsegue *)segue sender: (id)sender SaveViewController *vc = (SaveViewController *)segue.destinationviewcontroller; vc.databasepath = self.databasepath; vc.contactdb = self.contactdb; -(void)setediting:(bool)editing animated:(bool)animated [super setediting:editing animated:animated]; [tablev setediting:editing animated:animated]; เป ดไฟล ViewController.m - (ต อ) -(UITableViewCellEditingStyle)tableView:(UITableView *)tableview editingstyleforrowatindexpath:(nsindexpath *)indexpath if (tablev.editing) return UITableViewCellEditingStyleDelete; return UITableViewCellEditingStyleNone; -(void)deletecontact:(nsstring *)pkid sqlite3_stmt *statement; const char *dbpath = [databasepath UTF8String]; if (sqlite3_open(dbpath, &contactdb) == SQLITE_OK) NSString *SQL FROM CONTACTS WHERE ID= NSString *deletesql = [NSString stringwithformat:sql, pkid]; const char *delete_stmt = [deletesql UTF8String]; sqlite3_prepare_v2(contactdb, delete_stmt,-1, &statement, NULL); if (sqlite3_step(statement)!= SQLITE_DONE) FAILED ); sqlite3_finalize(statement); ต งค า Class = SaveViewController และ Subclass of = UIViewController เป ดไฟล SaveViewController.h #import UIKit/UIKit.h #import SaveViewController : UIViewController UITextFieldDelegate - (weak, nonatomic) IBOutlet UITextField (weak, nonatomic) IBOutlet UITextField (strong, nonatomic) NSString (nonatomic) sqlite3 เป ดไฟล SaveViewController.m #import tfname, databasepath, contactdb; -(BOOL)textFieldShouldReturn:(UITextField *)textfield [textfield resignfirstresponder]; return YES; - (id)initwithnibname:(nsstring *)nibnameornil bundle: (NSBundle *)nibbundleornil self = [super initwithnibname:nibnameornil bundle:nibbundleornil]; if (self) // Custom initialization return self; - (void)viewdidload [super viewdidload];! // Do any additional setup after loading the view. [tfname becomefirstresponder]; - (void)didreceivememorywarning [super didreceivememorywarning]; // Dispose of any resources that can be recreated. - (IBAction)doSaveClick:(id)sender sqlite3_stmt *statement; const char *dbpath = [databasepath UTF8String]; if (sqlite3_open(dbpath, &contactdb) == SQLITE_OK) NSString *SQL INTO CONTACTS (name, ) VALUES NSString *insertsql = [NSString stringwithformat:sql, tfname.text, tf .text]; const char *insert_stmt = [insertsql UTF8String]; sqlite3_prepare_v2(contactdb, insert_stmt,-1, &statement, NULL); if (sqlite3_step(statement) == SQLITE_DONE) [self dismissviewcontrolleranimated:yes completion:nil]; else FAILED ); sqlite3_finalize(statement); ท าการเช อมโยงหน าจอด งร ปด านล างเข าไปเช อมก บ navitem ท าการเช อมโยงหน าจอด งร ปด านล างเข าไปเช อมก บ tablev ท าการคล กขวาท Table View แล วท าการเช อม datasource และ delegate ไปย งไอคอนส เหล องด านล างด งภาพ วาง View Controller ด งร ปไปบน MainStoryboard.Storyboard คล กขวาท ไอคอนส เหล องด งร ปด านล าง แล วท าการเช อ modal ไป ย งไอคอน + คล กขวาท ไอคอนส เหล องด งร ปด านล าง แล วไปเล อกไอคอนท 3 ตามร ปแล วท าการเปล ยน Class = SaveViewController วาง Label 2 อ นต งค า Text = NAME, ตามร ป วาง Text Field 2 อ น และ ป มต งค า Text = SAVE
Related Search
Similar documents
View more...
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks