日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

李洪强iOS开发之FMDB线程安全的用法

發(fā)布時(shí)間:2025/3/8 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 李洪强iOS开发之FMDB线程安全的用法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

//

//? ViewController.m

//? 04 - FMDB線程安全的用法

//

//? Created by 李洪強(qiáng) on 2017/6/6.

//? Copyright ? 2017 李洪強(qiáng). All rights reserved.

//

?

#import "ViewController.h"

//導(dǎo)入頭文件

#import "FMDB.h"

@interface ViewController ()

@property(nonatomic,strong)FMDatabaseQueue *dataBaseQ;

@end

?

@implementation ViewController

?

- (void)viewDidLoad {

? ? [super viewDidLoad];

?

? ? NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:@"student"];

? ? FMDatabaseQueue *dataBaseQ = [FMDatabaseQueue databaseQueueWithPath:path];

? ? _dataBaseQ = dataBaseQ;

? ? [_dataBaseQ inDatabase:^(FMDatabase * _Nonnull db) {

?? ? ? ?

? ? ? ? BOOL success = [db open];

? ? ? ? if(success){

? ? ? ? ? ? NSLog(@"創(chuàng)建數(shù)據(jù)庫成功");

? ? ? ? ? ? //創(chuàng)建表

? ? ? ? ? ? NSString *str = @"CREATE TABLE IF NOT EXISTS t_student (id INTEGER PRIMARY KEY AUTOINCREMENT ,name TEXT NOT NULL,score REAL NOT NULL)";

? ? ? ? ? ? if([db executeUpdate:str]){

?? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? NSLog(@"創(chuàng)建表成功!");

? ? ? ? ? ? }else{

?? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? NSLog(@"創(chuàng)建表失敗!");

? ? ? ? ? ? }

? ? ? ? }else{

? ? ? ? ? ? NSLog(@"創(chuàng)建數(shù)據(jù)庫失敗");

? ? ? ? }

?? ? ? ?

? ? }];

?? ?

}

//增加數(shù)據(jù)

- (IBAction)insertData:(UIButton *)sender {

?? ?

? ? [_dataBaseQ inDatabase:^(FMDatabase * _Nonnull db) {

? ? ? ? for(int i = 0; i < 100 ; i++){

? ? ? ? ? ? NSString *strName = [NSString stringWithFormat:@"ming-yuexing-%d",i];

? ? ? ? ? ? NSString *sqlStr = [NSString stringWithFormat:@"INSERT INTO t_student (name , score) VALUES ('%@',%.2f)",strName,arc4random_uniform(1000)/10.0];

? ? ? ? ? ? BOOL success = [db executeUpdate:sqlStr];

? ? ? ? ? ? if(success){

? ? ? ? ? ? ? ? NSLog(@"添加成功");

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? NSLog(@"添加失敗");

? ? ? ? ? ? }

? ? ? ? }

?

? ? }];

?? ?

}

?

- (IBAction)selectData:(UIButton *)sender {

? ? [_dataBaseQ inDatabase:^(FMDatabase * _Nonnull db) {

? ? ? ? NSString *sqlStr = @"SELECT * FROM t_student WHERE score > 60.0 ORDER BY score DESC";

? ? ? ? //執(zhí)行查詢語句

? ? ? ? FMResultSet *set = [db executeQuery:sqlStr];

? ? ? ? while ([set next]) {

? ? ? ? ? ? NSString *name = [set stringForColumn:@"name"];

? ? ? ? ? ? CGFloat score = [set doubleForColumn:@"score"];

? ? ? ? ? ? NSLog(@"name = %@ score = %f",name,score);

? ? ? ? }

? ? }];

?? ?

}

?

/*

?使用FMDBsql的好處:

?線程安全

?公共資源在A使用的時(shí)候,B不能修改

?

?

?

?

?

?

?*/

?

@end

總結(jié)

以上是生活随笔為你收集整理的李洪强iOS开发之FMDB线程安全的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。