코드 소기
요즘 회사에 일이 많지 않으니 업무에서 비교적 중요한 코드를 정리해 보세요.
단례적 사용
/*
\
*/
// @interface
#define singleton_interface(className) \
+ (className *)shared##className;
// @implementation
#define singleton_implementation(className) \
static className *_instance; \
+ (id)allocWithZone:(NSZone *)zone \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
_instance = [super allocWithZone:zone]; \
}); \
return _instance; \
} \
+ (className *)shared##className \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
_instance = [[self alloc] init]; \
}); \
return _instance; \
}
FMDB 작업 (트랜잭션 + 스레드 보안)
*** ***
#define dbPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)[0] stringByAppendingPathComponent:@"test.db"]
*** ***
-(BOOL)createDBTable{
//
BOOL result = NO;
NSFileManager *fileManager = [NSFileManager defaultManager];
//
BOOL isExist = [fileManager fileExistsAtPath:dbPath];
if (!isExist) {
NSMutableArray *sqlArr = [[NSMutableArray alloc]init];
// - -master obj5: , sid
[sqlArr addObject:@"CREATE TABLE IF NOT EXISTS 'master' ('sid' varchar NOT NULL PRIMARY KEY,'imel' varchar,'type' int)"];
//
result = [self execute:sqlArr];
}else{
result = YES;
}
return result;
}
*** , ***
-(BOOL)executeAddnew{
__block BOOL result = NO;
FMDatabaseQueue *dbQueue = [[FMDatabaseQueue alloc]initWithPath:dbPath];
[dbQueue inDatabase:^(FMDatabase *db) {
[db beginTransaction];
//
if (![db tableExists:@"TicketInfo"]) {
[db executeUpdate:@"CREATE TABLE IF NOT EXISTS 'TicketInfo' ('ticketSid' varchar NOT NULL PRIMARY KEY, 'storeNo' varchar, 'posNo' varchar, 'transNo' varchar, 'price' float, 'date' varchar, 'flag' int)"];
//
if ([db tableExists:@"Printer"]) {
if (![db columnExists:@"Printer" inTableWithName:@"sid"]) {
[db executeUpdate:@"ALTER TABLE 'Printer' ADD 'sid' varchar"];
}
}
}
result = [db commit];
}];
[dbQueue close];
return result;
}
*** ***
-(BOOL)execute:(NSMutableArray*)sqlStrArr
{
__block BOOL result = NO;
FMDatabaseQueue *dbQueue = [[FMDatabaseQueue alloc]initWithPath:dbPath];
[dbQueue inDatabase:^(FMDatabase *db) {
[db beginTransaction];
for (NSString *sqlStr in sqlStrArr) {
BOOL detailResult = [db executeUpdate:sqlStr];
if (!detailResult) {
[db rollback];
break;
}
}
result = [db commit];
}];
return result;
}
*** ***
-(BOOL)executeSingle:(NSString*)sqlStr
{
__block BOOL result = NO;
FMDatabaseQueue *dbQueue = [[FMDatabaseQueue alloc]initWithPath:dbPath];
[dbQueue inDatabase:^(FMDatabase *db) {
result = [db executeUpdate:sqlStr];
if (!result) {
[db rollback];
}
}];
return result;
}
*** ***
-(NSArray *)queryGoodsTypeWithSqlite:(NSString *)sqlite{
__block NSMutableArray *marray = [[NSMutableArray alloc]initWithCapacity:10];
FMDatabaseQueue *dbQueue = [[FMDatabaseQueue alloc]initWithPath:dbPath];
[dbQueue inDatabase:^(FMDatabase *db) {
FMResultSet *result = [db executeQuery:sqlite];
while ([result next]) {
GoodsTypeInfoModel *goodsTypeModel = [[GoodsTypeInfoModel alloc]init];
goodsTypeModel.goodSid = [result stringForColumn:@"goodSid"];
[marray addObject: goodsTypeModel];
}
}];
return marray;
}
AFNetworking 캡슐화
시간 처리
JSON 분석
GitHub 주소 참조:https://github.com/Sunkangp/TOOL
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.