[objective-c]バンドルしたhtmlファイルをUIWebViewにロードする
バンドルしたhtmlファイルをUIWebViewにロードする
NSString *path = [[NSBundle mainBundle] pathForResource:@"about" ofType:@"html"]; [webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]];
バンドルしたhtmlファイルをUIWebViewにロードする
NSString *path = [[NSBundle mainBundle] pathForResource:@"about" ofType:@"html"]; [webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]];
UINavigationController-スワイプでのpopViewControllerAnimatedを無効にする
UINavigationController*nav.interactivePopGestureRecognizer.enabled=NO;
XMLDictionary
NSDictionary*xmldic=[NSDictionary dictionaryWithXMLString:xmlString];
<ZIP_result> <result name="ZipSearchXML"/> <result version="1.01"/> <result request_url="http%3A%2F%2Fzip.cgis.biz%2Fxml%2Fzip.php%3Fzn%3D0600000"/><result request_zip_num="0600000"/> <result request_zip_version="none"/> <result result_code="1"/> <result result_zip_num="0600000"/> <result result_zip_version="0"/> <result result_values_count="1"/> <ADDRESS_value> <value state_kana="ホッカイドウ"/> <value city_kana="サッポロシチュウオウク"/> <value address_kana="イカニケイサイガナイバアイ"/> <value company_kana="none"/> <value state="北海道"/> <value city="札幌市中央区"/> <value address="none"/> <value company="none"/> </ADDRESS_value> </ZIP_result>
上記のようなxmlStringだとすると
“北海道”を取得するにはこうする。
NSString*state=[xmldic valueForKeyPath:@"ADDRESS_value.value"][4][@"_state"];
シングルトンクラス
DataBaseManager.h
#import <Foundation/Foundation.h> #import "EGODatabase.h" @interface DataBaseManager : NSObject{ } + (DataBaseManager*)sharedInstance; @end
DataBaseManager.m
#import "DataBaseManager.h" @implementation DataBaseManager + (DataBaseManager*)sharedInstance { static DataBaseManager* _instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _instance = [[DataBaseManager alloc]initSharedInstance]; }); return _instance; } - (id)initSharedInstance { self = [super init]; if (self) { //初期化 } return self; } @end
使うとき
DataBaseManager*dbm=[DataBaseManager sharedInstance];
NSDictionaryからjson文字列を生成
NSError*error=nil; NSData*data=[NSJSONSerialization dataWithJSONObject:dic options:2 error:&error]; NSString*jsonstr=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSDateから文字列生成
-(NSString*) getDatetimeFromDate:(NSDate*)date { NSDateFormatter* form = [[NSDateFormatter alloc] init]; NSCalendar* cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; [form setCalendar: cal]; [form setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString* str = [form stringFromDate:date]; return str; } NSString*dateString=[self getDatetimeFromDate:[NSDate date]];
カラムの型一覧取得
-(EGODatabase*)getDB { EGODatabase* database = [EGODatabase databaseWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/database.db"]]; return database; } -(NSDictionary*)getColumnTypesByTableName:(NSString*)tableName { EGODatabase*db=[self getDB]; NSString*sql=[NSString stringWithFormat:@"pragma table_info(%@)",tableName]; EGODatabaseResult*result=[db executeQuery:sql]; NSMutableDictionary*dic=[NSMutableDictionary dictionary]; for (EGODatabaseRow*row in result) { [dic setObject:[row stringForColumn:@"type"] forKey:[row stringForColumn:@"name"]]; } return dic; }
カラム名一覧取得
-(NSArray*)getColumnNamesByTableName:(NSString*)tableName{ EGODatabase*db=[self getDB]; NSString*sql=[NSString stringWithFormat:@"pragma table_info(%@)",tableName]; EGODatabaseResult*result=[db executeQuery:sql]; NSMutableArray*list=[NSMutableArray arrayWithCapacity:[result count]]; for (EGODatabaseRow*row in result) { [list addObject:[row stringForColumn:@"name"]]; } return [NSArray arrayWithArray:list]; }
テーブル一覧取得
-(NSArray*)getTableNameList{ EGODatabase*db=[self getDB]; NSString*sql=@"select name from sqlite_master where type = 'table' order by name"; EGODatabaseResult*result=[db executeQuery:sql]; NSMutableArray*list=[NSMutableArray arrayWithCapacity:[result count]]; for (EGODatabaseRow*row in result) { [list addObject:[row stringForColumn:@"name"]]; } return [NSArray arrayWithArray:list]; } -(EGODatabase*)getDB{ EGODatabase* database = [EGODatabase databaseWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/database.db"]]; return database; } -(BOOL)isExistTableByName:(NSString*)tableName{ NSArray*tables=[self getTableNameList]; return [tables containsObject:tableName]; }
ファイル存在確認
//Documentsフォルダ内を確認 -(BOOL)isExistFile:(NSString*)fileName{ NSString* path=[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; path=[path stringByAppendingPathComponent:fileName]; return [[NSFileManager defaultManager] fileExistsAtPath:path]; } //fullパスで確認 -(BOOL)isExistFileByFullPath:(NSString*)path{ return [[NSFileManager defaultManager] fileExistsAtPath:path]; }