bug fix
This commit is contained in:
Binary file not shown.
@@ -1,9 +1,9 @@
|
||||
// This is a generated file; do not edit or check into version control.
|
||||
FLUTTER_ROOT=/Users/ntrlab/flutter
|
||||
FLUTTER_APPLICATION_PATH=/Users/ntrlab/semyon/apps/checker
|
||||
FLUTTER_TARGET=/Users/ntrlab/semyon/apps/checker/lib/main.dart
|
||||
FLUTTER_ROOT=/Users/sozinov/flutter
|
||||
FLUTTER_APPLICATION_PATH=/Users/sozinov/Developer/checker/checker
|
||||
FLUTTER_TARGET=lib/main.dart
|
||||
FLUTTER_BUILD_MODE=debug
|
||||
FLUTTER_BUILD_DIR=build
|
||||
SYMROOT=${SOURCE_ROOT}/../build/ios
|
||||
FLUTTER_FRAMEWORK_DIR=/Users/ntrlab/flutter/bin/cache/artifacts/engine/ios
|
||||
FLUTTER_FRAMEWORK_DIR=/Users/sozinov/flutter/bin/cache/artifacts/engine/ios
|
||||
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||
|
||||
Binary file not shown.
@@ -1,8 +1,8 @@
|
||||
PODS:
|
||||
- Flutter (1.0.0)
|
||||
- FMDB (2.6.2):
|
||||
- FMDB/standard (= 2.6.2)
|
||||
- FMDB/standard (2.6.2)
|
||||
- FMDB (2.7.2):
|
||||
- FMDB/standard (= 2.7.2)
|
||||
- FMDB/standard (2.7.2)
|
||||
- path_provider (0.0.1):
|
||||
- Flutter
|
||||
- sqflite (0.0.1):
|
||||
@@ -10,24 +10,24 @@ PODS:
|
||||
- FMDB
|
||||
|
||||
DEPENDENCIES:
|
||||
- Flutter (from `/Users/ntrlab/flutter/bin/cache/artifacts/engine/ios`)
|
||||
- path_provider (from `/Users/ntrlab/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.1+1/ios`)
|
||||
- sqflite (from `/Users/ntrlab/.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.3/ios`)
|
||||
- Flutter (from `/Users/sozinov/flutter/bin/cache/artifacts/engine/ios`)
|
||||
- path_provider (from `/Users/sozinov/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.1+1/ios`)
|
||||
- sqflite (from `/Users/sozinov/.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.4/ios`)
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
Flutter:
|
||||
:path: /Users/ntrlab/flutter/bin/cache/artifacts/engine/ios
|
||||
:path: /Users/sozinov/flutter/bin/cache/artifacts/engine/ios
|
||||
path_provider:
|
||||
:path: /Users/ntrlab/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.1+1/ios
|
||||
:path: /Users/sozinov/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.1+1/ios
|
||||
sqflite:
|
||||
:path: /Users/ntrlab/.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.3/ios
|
||||
:path: /Users/sozinov/.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.4/ios
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Flutter: d674e78c937094a75ac71dd77e921e840bea3dbf
|
||||
FMDB: 854a0341b4726e53276f2a8996f06f1b80f9259a
|
||||
FMDB: 6198a90e7b6900cfc046e6bc0ef6ebb7be9236aa
|
||||
path_provider: f96fff6166a8867510d2c25fdcc346327cc4b259
|
||||
sqflite: 8e2d9fe1e7cdc95d4d537fc7eb2d23c8dc428e3c
|
||||
|
||||
PODFILE CHECKSUM: 351e02e34b831289961ec3558a535cbd2c4965d2
|
||||
|
||||
COCOAPODS: 1.2.1
|
||||
COCOAPODS: 1.3.1
|
||||
|
||||
200
ios/Pods/FMDB/README.markdown
generated
200
ios/Pods/FMDB/README.markdown
generated
@@ -1,4 +1,7 @@
|
||||
# FMDB v2.6.2
|
||||
# FMDB v2.7
|
||||
<!--[](http://cocoadocs.org/docsets/Alamofire)-->
|
||||
[](https://img.shields.io/cocoapods/v/FMDB.svg)
|
||||
[](https://github.com/Carthage/Carthage)
|
||||
|
||||
This is an Objective-C wrapper around SQLite: http://sqlite.org/
|
||||
|
||||
@@ -13,29 +16,166 @@ Since FMDB is built on top of SQLite, you're going to want to read this page top
|
||||
## Contributing
|
||||
Do you have an awesome idea that deserves to be in FMDB? You might consider pinging ccgus first to make sure he hasn't already ruled it out for some reason. Otherwise pull requests are great, and make sure you stick to the local coding conventions. However, please be patient and if you haven't heard anything from ccgus for a week or more, you might want to send a note asking what's up.
|
||||
|
||||
## CocoaPods
|
||||
## Installing
|
||||
|
||||
### CocoaPods
|
||||
|
||||
[](https://www.versioneye.com/objective-c/fmdb/2.3)
|
||||
[](https://www.versioneye.com/objective-c/fmdb/references)
|
||||
|
||||
FMDB can be installed using [CocoaPods](https://cocoapods.org/).
|
||||
|
||||
If you haven't done so already, you might want to initialize the project, to have it produce a `Podfile` template for you:
|
||||
|
||||
```
|
||||
pod 'FMDB'
|
||||
# pod 'FMDB/FTS' # FMDB with FTS
|
||||
# pod 'FMDB/standalone' # FMDB with latest SQLite amalgamation source
|
||||
# pod 'FMDB/standalone/FTS' # FMDB with latest SQLite amalgamation source and FTS
|
||||
# pod 'FMDB/SQLCipher' # FMDB with SQLCipher
|
||||
$ pod init
|
||||
```
|
||||
|
||||
Then, edit the `Podfile`, adding `FMDB`:
|
||||
|
||||
```ruby
|
||||
# Uncomment the next line to define a global platform for your project
|
||||
# platform :ios, '9.0'
|
||||
|
||||
target 'MyApp' do
|
||||
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
|
||||
use_frameworks!
|
||||
|
||||
# Pods for MyApp2
|
||||
|
||||
pod 'FMDB'
|
||||
# pod 'FMDB/FTS' # FMDB with FTS
|
||||
# pod 'FMDB/standalone' # FMDB with latest SQLite amalgamation source
|
||||
# pod 'FMDB/standalone/FTS' # FMDB with latest SQLite amalgamation source and FTS
|
||||
# pod 'FMDB/SQLCipher' # FMDB with SQLCipher
|
||||
end
|
||||
```
|
||||
|
||||
Then install the pods:
|
||||
|
||||
```
|
||||
$ pod install
|
||||
```
|
||||
|
||||
Then open the `.xcworkspace` rather than the `.xcodeproj`.
|
||||
|
||||
For more information on Cocoapods visit https://cocoapods.org.
|
||||
|
||||
**If using FMDB with [SQLCipher](https://www.zetetic.net/sqlcipher/) you must use the FMDB/SQLCipher subspec. The FMDB/SQLCipher subspec declares SQLCipher as a dependency, allowing FMDB to be compiled with the `-DSQLITE_HAS_CODEC` flag.**
|
||||
|
||||
### Carthage
|
||||
|
||||
Once you make sure you have [the latest version of Carthage](https://github.com/Carthage/Carthage/releases), you can open up a command line terminal, navigate to your project's main directory, and then do the following commands:
|
||||
|
||||
```
|
||||
$ echo ' github "ccgus/fmdb" ' > ./Cartfile
|
||||
$ carthage update
|
||||
```
|
||||
|
||||
You can then configure your project as outlined in Carthage's [Getting Started](https://github.com/Carthage/Carthage#getting-started) (i.e. for iOS, adding the framework to the "Link Binary with Libraries" in your target and adding the `copy-frameworks` script; in macOS, adding the framework to the list of "Embedded Binaries").
|
||||
|
||||
## FMDB Class Reference:
|
||||
http://ccgus.github.io/fmdb/html/index.html
|
||||
|
||||
## Automatic Reference Counting (ARC) or Manual Memory Management?
|
||||
You can use either style in your Cocoa project. FMDB will figure out which you are using at compile time and do the right thing.
|
||||
|
||||
## What's New in FMDB 2.7
|
||||
|
||||
FMDB 2.7 attempts to support a more natural interface. This represents a fairly significant change for Swift developers (audited for nullability; shifted to properties in external interfaces where possible rather than methods; etc.). For Objective-C developers, this should be a fairly seamless transition (unless you were using the ivars that were previously exposed in the public interface, which you shouldn't have been doing, anyway!).
|
||||
|
||||
### Nullability and Swift Optionals
|
||||
|
||||
FMDB 2.7 is largely the same as prior versions, but has been audited for nullability. For Objective-C users, this simply means that if you perform a static analysis of your FMDB-based project, you may receive more meaningful warnings as you review your project, but there are likely to be few, if any, changes necessary in your code.
|
||||
|
||||
For Swift users, this nullability audit results in changes that are not entirely backward compatible with FMDB 2.6, but is a little more Swifty. Before FMDB was audited for nullability, Swift was forced to defensively assume that variables were optional, but the library now more accurately knows which properties and method parameters are optional, and which are not.
|
||||
|
||||
This means, though, that Swift code written for FMDB 2.7 may require changes. For example, consider the following Swift 3/Swift 4 code for FMDB 2.6:
|
||||
```swift
|
||||
|
||||
guard let queue = FMDatabaseQueue(path: fileURL.path) else {
|
||||
print("Unable to create FMDatabaseQueue")
|
||||
return
|
||||
}
|
||||
|
||||
queue.inTransaction { db, rollback in
|
||||
do {
|
||||
guard let db == db else {
|
||||
// handle error here
|
||||
return
|
||||
}
|
||||
|
||||
try db.executeUpdate("INSERT INTO foo (bar) VALUES (?)", values: [1])
|
||||
try db.executeUpdate("INSERT INTO foo (bar) VALUES (?)", values: [2])
|
||||
} catch {
|
||||
rollback?.pointee = true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Because FMDB 2.6 was not audited for nullability, Swift inferred that `db` and `rollback` were optionals. But, now, in FMDB 2.7, Swift now knows that, for example, neither `db` nor `rollback` above can be `nil`, so they are no longer optionals. Thus it becomes:
|
||||
|
||||
```swift
|
||||
|
||||
let queue = FMDatabaseQueue(url: fileURL)
|
||||
|
||||
queue.inTransaction { db, rollback in
|
||||
do {
|
||||
try db.executeUpdate("INSERT INTO foo (bar) VALUES (?)", values: [1])
|
||||
try db.executeUpdate("INSERT INTO foo (bar) VALUES (?)", values: [2])
|
||||
} catch {
|
||||
rollback.pointee = true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Custom Functions
|
||||
|
||||
In the past, when writing custom functions, you would have to generally include your own `@autoreleasepool` block to avoid problems when writing functions that scanned through a large table. Now, FMDB will automatically wrap it in an autorelease pool, so you don't have to.
|
||||
|
||||
Also, in the past, when retrieving the values passed to the function, you had to drop down to the SQLite C API and include your own `sqlite3_value_XXX` calls. There are now `FMDatabase` methods, `valueInt`, `valueString`, etc., so you can stay within Swift and/or Objective-C, without needing to call the C functions yourself. Likewise, when specifying the return values, you no longer need to call `sqlite3_result_XXX` C API, but rather you can use `FMDatabase` methods, `resultInt`, `resultString`, etc. There is a new `enum` for `valueType` called `SqliteValueType`, which can be used for checking the type of parameter passed to the custom function.
|
||||
|
||||
Thus, you can do something like (as of Swift 3):
|
||||
|
||||
```swift
|
||||
db.makeFunctionNamed("RemoveDiacritics", arguments: 1) { context, argc, argv in
|
||||
guard db.valueType(argv[0]) == .text || db.valueType(argv[0]) == .null else {
|
||||
db.resultError("Expected string parameter", context: context)
|
||||
return
|
||||
}
|
||||
|
||||
if let string = db.valueString(argv[0])?.folding(options: .diacriticInsensitive, locale: nil) {
|
||||
db.resultString(string, context: context)
|
||||
} else {
|
||||
db.resultNull(context: context)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
And you can then use that function in your SQL (in this case, matching both "Jose" and "José"):
|
||||
|
||||
```sql
|
||||
SELECT * FROM employees WHERE RemoveDiacritics(first_name) LIKE 'jose'
|
||||
```
|
||||
|
||||
Note, the method `makeFunctionNamed:maximumArguments:withBlock:` has been renamed to `makeFunctionNamed:arguments:block:`, to more accurately reflect the functional intent of the second parameter.
|
||||
|
||||
### API Changes
|
||||
|
||||
In addition to the `makeFunctionNamed` noted above, there are a few other API changes. Specifically,
|
||||
|
||||
- To become consistent with the rest of the API, the methods `objectForColumnName` and `UTF8StringForColumnName` have been renamed to `objectForColumn` and `UTF8StringForColumn`.
|
||||
|
||||
- Note, the `objectForColumn` (and the associted subscript operator) now returns `nil` if an invalid column name/index is passed to it. It used to return `NSNull`.
|
||||
|
||||
- To avoid confusion with `FMDatabaseQueue` method `inTransaction`, which performs transactions, the `FMDatabase` method to determine whether you are in a transaction or not, `inTransaction`, has been replaced with a read-only property, `isInTransaction`.
|
||||
|
||||
- Several functions have been converted to properties, namely, `databasePath`, `maxBusyRetryTimeInterval`, `shouldCacheStatements`, `sqliteHandle`, `hasOpenResultSets`, `lastInsertRowId`, `changes`, `goodConnection`, `columnCount`, `resultDictionary`, `applicationID`, `applicationIDString`, `userVersion`, `countOfCheckedInDatabases`, `countOfCheckedOutDatabases`, and `countOfOpenDatabases`. For Objective-C users, this has little material impact, but for Swift users, it results in a slightly more natural interface. Note: For Objective-C developers, previously versions of FMDB exposed many ivars (but we hope you weren't using them directly, anyway!), but the implmentation details for these are no longer exposed.
|
||||
|
||||
### URL Methods
|
||||
|
||||
In keeping with Apple's shift from paths to URLs, there are now `NSURL` renditions of the various `init` methods, previously only accepting paths.
|
||||
|
||||
## Usage
|
||||
There are three main classes in FMDB:
|
||||
|
||||
@@ -53,7 +193,8 @@ An `FMDatabase` is created with a path to a SQLite database file. This path can
|
||||
(For more information on temporary and in-memory databases, read the sqlite documentation on the subject: http://www.sqlite.org/inmemorydb.html)
|
||||
|
||||
```objc
|
||||
FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/tmp.db"];
|
||||
NSString *path = [NSTemporaryDirectory() stringByAppendingPathComponent:@"tmp.db"];
|
||||
FMDatabase *db = [FMDatabase databaseWithPath:path];
|
||||
```
|
||||
|
||||
### Opening
|
||||
@@ -62,7 +203,8 @@ Before you can interact with the database, it must be opened. Opening fails if
|
||||
|
||||
```objc
|
||||
if (![db open]) {
|
||||
[db release];
|
||||
// [db release]; // uncomment this line in manual referencing code; in ARC, this is not necessary/permitted
|
||||
db = nil;
|
||||
return;
|
||||
}
|
||||
```
|
||||
@@ -108,8 +250,8 @@ if ([s next]) {
|
||||
- `dateForColumn:`
|
||||
- `dataForColumn:`
|
||||
- `dataNoCopyForColumn:`
|
||||
- `UTF8StringForColumnName:`
|
||||
- `objectForColumnName:`
|
||||
- `UTF8StringForColumn:`
|
||||
- `objectForColumn:`
|
||||
|
||||
Each of these methods also has a `{type}ForColumnIndex:` variant that is used to retrieve the data based on the position of the column in the results, as opposed to the column's name.
|
||||
|
||||
@@ -180,13 +322,13 @@ if (!success) {
|
||||
>
|
||||
> Likewise, SQL `NULL` values should be inserted as `[NSNull null]`. For example, in the case of `comment` which might be `nil` (and is in this example), you can use the `comment ?: [NSNull null]` syntax, which will insert the string if `comment` is not `nil`, but will insert `[NSNull null]` if it is `nil`.
|
||||
|
||||
In Swift, you would use `executeUpdate(values:)`, which not only is a concise Swift syntax, but also `throws` errors for proper Swift 2 error handling:
|
||||
In Swift, you would use `executeUpdate(values:)`, which not only is a concise Swift syntax, but also `throws` errors for proper error handling:
|
||||
|
||||
```swift
|
||||
do {
|
||||
let identifier = 42
|
||||
let name = "Liam O'Flaherty (\"the famous Irish author\")"
|
||||
let date = NSDate()
|
||||
let date = Date()
|
||||
let comment: String? = nil
|
||||
|
||||
try db.executeUpdate("INSERT INTO authors (identifier, name, date, comment) VALUES (?, ?, ?, ?)", values: [identifier, name, date, comment ?? NSNull()])
|
||||
@@ -257,8 +399,8 @@ An easy way to wrap things up in a transaction can be done like this:
|
||||
*rollback = YES;
|
||||
return;
|
||||
}
|
||||
// etc…
|
||||
[db executeUpdate:@"INSERT INTO myTable VALUES (?)", @4];
|
||||
|
||||
// etc ...
|
||||
}];
|
||||
```
|
||||
|
||||
@@ -272,18 +414,20 @@ queue.inTransaction { db, rollback in
|
||||
try db.executeUpdate("INSERT INTO myTable VALUES (?)", values: [3])
|
||||
|
||||
if whoopsSomethingWrongHappened {
|
||||
rollback.memory = true
|
||||
rollback.pointee = true
|
||||
return
|
||||
}
|
||||
|
||||
try db.executeUpdate("INSERT INTO myTable VALUES (?)", values: [4])
|
||||
// etc ...
|
||||
} catch {
|
||||
rollback.memory = true
|
||||
rollback.pointee = true
|
||||
print(error)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
(Note, as of Swift 3, use `pointee`. But in Swift 2.3, use `memory` rather than `pointee`.)
|
||||
|
||||
`FMDatabaseQueue` will run the blocks on a serialized queue (hence the name of the class). So if you call `FMDatabaseQueue`'s methods from multiple threads at the same time, they will be executed in the order they are received. This way queries and updates won't step on each other's toes, and every one is happy.
|
||||
|
||||
**Note:** The calls to `FMDatabaseQueue`'s methods are blocking. So even though you are passing along blocks, they will **not** be run on another thread.
|
||||
@@ -313,17 +457,18 @@ To do this, you must:
|
||||
#import "FMDB.h"
|
||||
```
|
||||
|
||||
4. Use the variations of `executeQuery` and `executeUpdate` with the `sql` and `values` parameters with `try` pattern, as shown below. These renditions of `executeQuery` and `executeUpdate` both `throw` errors in true Swift 2 fashion.
|
||||
4. Use the variations of `executeQuery` and `executeUpdate` with the `sql` and `values` parameters with `try` pattern, as shown below. These renditions of `executeQuery` and `executeUpdate` both `throw` errors in true Swift fashion.
|
||||
|
||||
If you do the above, you can then write Swift code that uses `FMDatabase`. For example:
|
||||
If you do the above, you can then write Swift code that uses `FMDatabase`. For example, as of Swift 3:
|
||||
|
||||
```swift
|
||||
let documents = try! NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: false)
|
||||
let fileURL = documents.URLByAppendingPathComponent("test.sqlite")
|
||||
let fileURL = try! FileManager.default
|
||||
.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
|
||||
.appendingPathComponent("test.sqlite")
|
||||
|
||||
let database = FMDatabase(path: fileURL.path)
|
||||
let database = FMDatabase(url: fileURL)
|
||||
|
||||
if !database.open() {
|
||||
guard database.open() else {
|
||||
print("Unable to open database")
|
||||
return
|
||||
}
|
||||
@@ -335,12 +480,11 @@ do {
|
||||
|
||||
let rs = try database.executeQuery("select x, y, z from test", values: nil)
|
||||
while rs.next() {
|
||||
let x = rs.stringForColumn("x")
|
||||
let y = rs.stringForColumn("y")
|
||||
let z = rs.stringForColumn("z")
|
||||
if let x = rs.string(forColumn: "x"), let y = rs.string(forColumn: "y"), let z = rs.string(forColumn: "z") {
|
||||
print("x = \(x); y = \(y); z = \(z)")
|
||||
}
|
||||
} catch let error as NSError {
|
||||
}
|
||||
} catch {
|
||||
print("failed: \(error.localizedDescription)")
|
||||
}
|
||||
|
||||
|
||||
404
ios/Pods/FMDB/src/fmdb/FMDatabase.h
generated
404
ios/Pods/FMDB/src/fmdb/FMDatabase.h
generated
@@ -2,6 +2,7 @@
|
||||
#import "FMResultSet.h"
|
||||
#import "FMDatabasePool.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
#if ! __has_feature(objc_arc)
|
||||
#define FMDBAutorelease(__v) ([__v autorelease]);
|
||||
@@ -70,26 +71,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
#pragma clang diagnostic ignored "-Wobjc-interface-ivars"
|
||||
|
||||
|
||||
@interface FMDatabase : NSObject {
|
||||
|
||||
void* _db;
|
||||
NSString* _databasePath;
|
||||
BOOL _logsErrors;
|
||||
BOOL _crashOnErrors;
|
||||
BOOL _traceExecution;
|
||||
BOOL _checkedOut;
|
||||
BOOL _shouldCacheStatements;
|
||||
BOOL _isExecutingStatement;
|
||||
BOOL _inTransaction;
|
||||
NSTimeInterval _maxBusyRetryTimeInterval;
|
||||
NSTimeInterval _startBusyRetryTime;
|
||||
|
||||
NSMutableDictionary *_cachedStatements;
|
||||
NSMutableSet *_openResultSets;
|
||||
NSMutableSet *_openFunctions;
|
||||
|
||||
NSDateFormatter *_dateFormat;
|
||||
}
|
||||
@interface FMDatabase : NSObject
|
||||
|
||||
///-----------------
|
||||
/// @name Properties
|
||||
@@ -113,7 +95,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
/** Dictionary of cached statements */
|
||||
|
||||
@property (atomic, retain) NSMutableDictionary *cachedStatements;
|
||||
@property (atomic, retain, nullable) NSMutableDictionary *cachedStatements;
|
||||
|
||||
///---------------------
|
||||
/// @name Initialization
|
||||
@@ -145,7 +127,34 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
+ (instancetype)databaseWithPath:(NSString*)inPath;
|
||||
+ (instancetype)databaseWithPath:(NSString * _Nullable)inPath;
|
||||
|
||||
/** Create a `FMDatabase` object.
|
||||
|
||||
An `FMDatabase` is created with a path to a SQLite database file. This path can be one of these three:
|
||||
|
||||
1. A file system URL. The file does not have to exist on disk. If it does not exist, it is created for you.
|
||||
2. `nil`. An in-memory database is created. This database will be destroyed with the `FMDatabase` connection is closed.
|
||||
|
||||
For example, to create/open a database in your Mac OS X `tmp` folder:
|
||||
|
||||
FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/tmp.db"];
|
||||
|
||||
Or, in iOS, you might open a database in the app's `Documents` directory:
|
||||
|
||||
NSString *docsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
|
||||
NSString *dbPath = [docsPath stringByAppendingPathComponent:@"test.db"];
|
||||
FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
|
||||
|
||||
(For more information on temporary and in-memory databases, read the sqlite documentation on the subject: [http://www.sqlite.org/inmemorydb.html](http://www.sqlite.org/inmemorydb.html))
|
||||
|
||||
@param url The local file URL (not remote URL) of database file
|
||||
|
||||
@return `FMDatabase` object if successful; `nil` if failure.
|
||||
|
||||
*/
|
||||
|
||||
+ (instancetype)databaseWithURL:(NSURL * _Nullable)url;
|
||||
|
||||
/** Initialize a `FMDatabase` object.
|
||||
|
||||
@@ -167,14 +176,40 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
(For more information on temporary and in-memory databases, read the sqlite documentation on the subject: [http://www.sqlite.org/inmemorydb.html](http://www.sqlite.org/inmemorydb.html))
|
||||
|
||||
@param inPath Path of database file
|
||||
@param path Path of database file.
|
||||
|
||||
@return `FMDatabase` object if successful; `nil` if failure.
|
||||
|
||||
*/
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)inPath;
|
||||
- (instancetype)initWithPath:(NSString * _Nullable)path;
|
||||
|
||||
/** Initialize a `FMDatabase` object.
|
||||
|
||||
An `FMDatabase` is created with a local file URL to a SQLite database file. This path can be one of these three:
|
||||
|
||||
1. A file system URL. The file does not have to exist on disk. If it does not exist, it is created for you.
|
||||
2. `nil`. An in-memory database is created. This database will be destroyed with the `FMDatabase` connection is closed.
|
||||
|
||||
For example, to create/open a database in your Mac OS X `tmp` folder:
|
||||
|
||||
FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/tmp.db"];
|
||||
|
||||
Or, in iOS, you might open a database in the app's `Documents` directory:
|
||||
|
||||
NSString *docsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
|
||||
NSString *dbPath = [docsPath stringByAppendingPathComponent:@"test.db"];
|
||||
FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
|
||||
|
||||
(For more information on temporary and in-memory databases, read the sqlite documentation on the subject: [http://www.sqlite.org/inmemorydb.html](http://www.sqlite.org/inmemorydb.html))
|
||||
|
||||
@param url The file `NSURL` of database file.
|
||||
|
||||
@return `FMDatabase` object if successful; `nil` if failure.
|
||||
|
||||
*/
|
||||
|
||||
- (instancetype)initWithURL:(NSURL * _Nullable)url;
|
||||
|
||||
///-----------------------------------
|
||||
/// @name Opening and closing database
|
||||
@@ -243,7 +278,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see close
|
||||
*/
|
||||
|
||||
- (BOOL)openWithFlags:(int)flags vfs:(NSString *)vfsName;
|
||||
- (BOOL)openWithFlags:(int)flags vfs:(NSString * _Nullable)vfsName;
|
||||
|
||||
/** Closing a database connection
|
||||
|
||||
@@ -266,7 +301,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@return `YES` if everything succeeds, `NO` on failure.
|
||||
*/
|
||||
|
||||
- (BOOL)goodConnection;
|
||||
@property (nonatomic, readonly) BOOL goodConnection;
|
||||
|
||||
|
||||
///----------------------
|
||||
@@ -293,7 +328,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see [`sqlite3_bind`](http://sqlite.org/c3ref/bind_blob.html)
|
||||
*/
|
||||
|
||||
- (BOOL)executeUpdate:(NSString*)sql withErrorAndBindings:(NSError**)outErr, ...;
|
||||
- (BOOL)executeUpdate:(NSString*)sql withErrorAndBindings:(NSError * _Nullable *)outErr, ...;
|
||||
|
||||
/** Execute single update statement
|
||||
|
||||
@@ -302,7 +337,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@warning **Deprecated**: Please use `<executeUpdate:withErrorAndBindings>` instead.
|
||||
*/
|
||||
|
||||
- (BOOL)update:(NSString*)sql withErrorAndBindings:(NSError**)outErr, ... __attribute__ ((deprecated));
|
||||
- (BOOL)update:(NSString*)sql withErrorAndBindings:(NSError * _Nullable*)outErr, ... __deprecated_msg("Use executeUpdate:withErrorAndBindings: instead");;
|
||||
|
||||
/** Execute single update statement
|
||||
|
||||
@@ -323,7 +358,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
@note This technique supports the use of `?` placeholders in the SQL, automatically binding any supplied value parameters to those placeholders. This approach is more robust than techniques that entail using `stringWithFormat` to manually build SQL statements, which can be problematic if the values happened to include any characters that needed to be quoted.
|
||||
|
||||
@note If you want to use this from Swift, please note that you must include `FMDatabaseVariadic.swift` in your project. Without that, you cannot use this method directly, and instead have to use methods such as `<executeUpdate:withArgumentsInArray:>`.
|
||||
@note You cannot use this method from Swift due to incompatibilities between Swift and Objective-C variadic implementations. Consider using `<executeUpdate:values:>` instead.
|
||||
*/
|
||||
|
||||
- (BOOL)executeUpdate:(NSString*)sql, ...;
|
||||
@@ -384,9 +419,9 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
This is similar to `<executeUpdate:withArgumentsInArray:>`, except that this also accepts a pointer to a `NSError` pointer, so that errors can be returned.
|
||||
|
||||
In Swift 2, this throws errors, as if it were defined as follows:
|
||||
In Swift, this throws errors, as if it were defined as follows:
|
||||
|
||||
`func executeUpdate(sql: String!, values: [AnyObject]!) throws -> Bool`
|
||||
`func executeUpdate(sql: String, values: [Any]?) throws -> Bool`
|
||||
|
||||
@param sql The SQL to be performed, with optional `?` placeholders.
|
||||
|
||||
@@ -402,7 +437,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (BOOL)executeUpdate:(NSString*)sql values:(NSArray *)values error:(NSError * __autoreleasing *)error;
|
||||
- (BOOL)executeUpdate:(NSString*)sql values:(NSArray * _Nullable)values error:(NSError * _Nullable __autoreleasing *)error;
|
||||
|
||||
/** Execute single update statement
|
||||
|
||||
@@ -476,7 +511,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (BOOL)executeStatements:(NSString *)sql withResultBlock:(FMDBExecuteStatementsCallbackBlock)block;
|
||||
- (BOOL)executeStatements:(NSString *)sql withResultBlock:(__attribute__((noescape)) FMDBExecuteStatementsCallbackBlock _Nullable)block;
|
||||
|
||||
/** Last insert rowid
|
||||
|
||||
@@ -490,7 +525,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (int64_t)lastInsertRowId;
|
||||
@property (nonatomic, readonly) int64_t lastInsertRowId;
|
||||
|
||||
/** The number of rows changed by prior SQL statement.
|
||||
|
||||
@@ -502,7 +537,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (int)changes;
|
||||
@property (nonatomic, readonly) int changes;
|
||||
|
||||
|
||||
///-------------------------
|
||||
@@ -527,10 +562,10 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see [`FMResultSet next`](<[FMResultSet next]>)
|
||||
@see [`sqlite3_bind`](http://sqlite.org/c3ref/bind_blob.html)
|
||||
|
||||
@note If you want to use this from Swift, please note that you must include `FMDatabaseVariadic.swift` in your project. Without that, you cannot use this method directly, and instead have to use methods such as `<executeQuery:withArgumentsInArray:>`.
|
||||
@note You cannot use this method from Swift due to incompatibilities between Swift and Objective-C variadic implementations. Consider using `<executeQuery:values:>` instead.
|
||||
*/
|
||||
|
||||
- (FMResultSet *)executeQuery:(NSString*)sql, ...;
|
||||
- (FMResultSet * _Nullable)executeQuery:(NSString*)sql, ...;
|
||||
|
||||
/** Execute select statement
|
||||
|
||||
@@ -560,7 +595,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
|
||||
- (FMResultSet * _Nullable)executeQueryWithFormat:(NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
|
||||
|
||||
/** Execute select statement
|
||||
|
||||
@@ -579,7 +614,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see [`FMResultSet next`](<[FMResultSet next]>)
|
||||
*/
|
||||
|
||||
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments;
|
||||
- (FMResultSet * _Nullable)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments;
|
||||
|
||||
/** Execute select statement
|
||||
|
||||
@@ -589,9 +624,9 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
This is similar to `<executeQuery:withArgumentsInArray:>`, except that this also accepts a pointer to a `NSError` pointer, so that errors can be returned.
|
||||
|
||||
In Swift 2, this throws errors, as if it were defined as follows:
|
||||
In Swift, this throws errors, as if it were defined as follows:
|
||||
|
||||
`func executeQuery(sql: String!, values: [AnyObject]!) throws -> FMResultSet!`
|
||||
`func executeQuery(sql: String, values: [Any]?) throws -> FMResultSet!`
|
||||
|
||||
@param sql The SELECT statement to be performed, with optional `?` placeholders.
|
||||
|
||||
@@ -608,7 +643,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (FMResultSet *)executeQuery:(NSString *)sql values:(NSArray *)values error:(NSError * __autoreleasing *)error;
|
||||
- (FMResultSet * _Nullable)executeQuery:(NSString *)sql values:(NSArray * _Nullable)values error:(NSError * _Nullable __autoreleasing *)error;
|
||||
|
||||
/** Execute select statement
|
||||
|
||||
@@ -626,11 +661,11 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see [`FMResultSet next`](<[FMResultSet next]>)
|
||||
*/
|
||||
|
||||
- (FMResultSet *)executeQuery:(NSString *)sql withParameterDictionary:(NSDictionary *)arguments;
|
||||
- (FMResultSet * _Nullable)executeQuery:(NSString *)sql withParameterDictionary:(NSDictionary * _Nullable)arguments;
|
||||
|
||||
|
||||
// Documentation forthcoming.
|
||||
- (FMResultSet *)executeQuery:(NSString*)sql withVAList: (va_list)args;
|
||||
- (FMResultSet * _Nullable)executeQuery:(NSString *)sql withVAList:(va_list)args;
|
||||
|
||||
///-------------------
|
||||
/// @name Transactions
|
||||
@@ -643,7 +678,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see commit
|
||||
@see rollback
|
||||
@see beginDeferredTransaction
|
||||
@see inTransaction
|
||||
@see isInTransaction
|
||||
*/
|
||||
|
||||
- (BOOL)beginTransaction;
|
||||
@@ -655,7 +690,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see commit
|
||||
@see rollback
|
||||
@see beginTransaction
|
||||
@see inTransaction
|
||||
@see isInTransaction
|
||||
*/
|
||||
|
||||
- (BOOL)beginDeferredTransaction;
|
||||
@@ -669,7 +704,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see beginTransaction
|
||||
@see beginDeferredTransaction
|
||||
@see rollback
|
||||
@see inTransaction
|
||||
@see isInTransaction
|
||||
*/
|
||||
|
||||
- (BOOL)commit;
|
||||
@@ -683,22 +718,22 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see beginTransaction
|
||||
@see beginDeferredTransaction
|
||||
@see commit
|
||||
@see inTransaction
|
||||
@see isInTransaction
|
||||
*/
|
||||
|
||||
- (BOOL)rollback;
|
||||
|
||||
/** Identify whether currently in a transaction or not
|
||||
|
||||
@return `YES` if currently within transaction; `NO` if not.
|
||||
|
||||
@see beginTransaction
|
||||
@see beginDeferredTransaction
|
||||
@see commit
|
||||
@see rollback
|
||||
*/
|
||||
|
||||
- (BOOL)inTransaction;
|
||||
@property (nonatomic, readonly) BOOL isInTransaction;
|
||||
|
||||
- (BOOL)inTransaction __deprecated_msg("Use isInTransaction property instead");
|
||||
|
||||
|
||||
///----------------------------------------
|
||||
@@ -718,22 +753,22 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@return `YES` if there are open result sets; `NO` if not.
|
||||
*/
|
||||
|
||||
- (BOOL)hasOpenResultSets;
|
||||
@property (nonatomic, readonly) BOOL hasOpenResultSets;
|
||||
|
||||
/** Return whether should cache statements or not
|
||||
|
||||
@return `YES` if should cache statements; `NO` if not.
|
||||
/** Whether should cache statements or not
|
||||
*/
|
||||
|
||||
- (BOOL)shouldCacheStatements;
|
||||
@property (nonatomic) BOOL shouldCacheStatements;
|
||||
|
||||
/** Set whether should cache statements or not
|
||||
/** Interupt pending database operation
|
||||
|
||||
This method causes any pending database operation to abort and return at its earliest opportunity
|
||||
|
||||
@return `YES` on success; `NO` on failure. If failed, you can call `<lastError>`, `<lastErrorCode>`, or `<lastErrorMessage>` for diagnostic information regarding the failure.
|
||||
|
||||
@param value `YES` if should cache statements; `NO` if not.
|
||||
*/
|
||||
|
||||
- (void)setShouldCacheStatements:(BOOL)value;
|
||||
|
||||
- (BOOL)interrupt;
|
||||
|
||||
///-------------------------
|
||||
/// @name Encryption methods
|
||||
@@ -797,12 +832,14 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
///------------------------------
|
||||
|
||||
/** The path of the database file
|
||||
|
||||
@return path of database.
|
||||
|
||||
*/
|
||||
|
||||
- (NSString *)databasePath;
|
||||
@property (nonatomic, readonly, nullable) NSString *databasePath;
|
||||
|
||||
/** The file URL of the database file.
|
||||
*/
|
||||
|
||||
@property (nonatomic, readonly, nullable) NSURL *databaseURL;
|
||||
|
||||
/** The underlying SQLite handle
|
||||
|
||||
@@ -810,7 +847,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (void*)sqliteHandle;
|
||||
@property (nonatomic, readonly) void *sqliteHandle;
|
||||
|
||||
|
||||
///-----------------------------
|
||||
@@ -845,6 +882,22 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
- (int)lastErrorCode;
|
||||
|
||||
/** Last extended error code
|
||||
|
||||
Returns the numeric extended result code for the most recent failed SQLite API call associated with a database connection. If a prior API call failed but the most recent API call succeeded, this return value is undefined.
|
||||
|
||||
@return Integer value of the last extended error code.
|
||||
|
||||
@see [sqlite3_errcode()](http://sqlite.org/c3ref/errcode.html)
|
||||
@see [2. Primary Result Codes versus Extended Result Codes](http://sqlite.org/rescode.html#primary_result_codes_versus_extended_result_codes)
|
||||
@see [5. Extended Result Code List](http://sqlite.org/rescode.html#extrc)
|
||||
@see lastErrorMessage
|
||||
@see lastError
|
||||
|
||||
*/
|
||||
|
||||
- (int)lastExtendedErrorCode;
|
||||
|
||||
/** Had error
|
||||
|
||||
@return `YES` if there was an error, `NO` if no error.
|
||||
@@ -866,12 +919,11 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (NSError*)lastError;
|
||||
- (NSError *)lastError;
|
||||
|
||||
|
||||
// description forthcoming
|
||||
- (void)setMaxBusyRetryTimeInterval:(NSTimeInterval)timeoutInSeconds;
|
||||
- (NSTimeInterval)maxBusyRetryTimeInterval;
|
||||
@property (nonatomic) NSTimeInterval maxBusyRetryTimeInterval;
|
||||
|
||||
|
||||
///------------------
|
||||
@@ -890,7 +942,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see rollbackToSavePointWithName:error:
|
||||
*/
|
||||
|
||||
- (BOOL)startSavePointWithName:(NSString*)name error:(NSError**)outErr;
|
||||
- (BOOL)startSavePointWithName:(NSString*)name error:(NSError * _Nullable *)outErr;
|
||||
|
||||
/** Release save point
|
||||
|
||||
@@ -905,7 +957,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (BOOL)releaseSavePointWithName:(NSString*)name error:(NSError**)outErr;
|
||||
- (BOOL)releaseSavePointWithName:(NSString*)name error:(NSError * _Nullable *)outErr;
|
||||
|
||||
/** Roll back to save point
|
||||
|
||||
@@ -919,7 +971,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (BOOL)rollbackToSavePointWithName:(NSString*)name error:(NSError**)outErr;
|
||||
- (BOOL)rollbackToSavePointWithName:(NSString*)name error:(NSError * _Nullable *)outErr;
|
||||
|
||||
/** Start save point
|
||||
|
||||
@@ -933,7 +985,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
*/
|
||||
|
||||
- (NSError*)inSavePoint:(void (^)(BOOL *rollback))block;
|
||||
- (NSError * _Nullable)inSavePoint:(__attribute__((noescape)) void (^)(BOOL *rollback))block;
|
||||
|
||||
///----------------------------
|
||||
/// @name SQLite library status
|
||||
@@ -971,48 +1023,193 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
For example:
|
||||
|
||||
[queue inDatabase:^(FMDatabase *adb) {
|
||||
|
||||
[adb executeUpdate:@"create table ftest (foo text)"];
|
||||
[adb executeUpdate:@"insert into ftest values ('hello')"];
|
||||
[adb executeUpdate:@"insert into ftest values ('hi')"];
|
||||
[adb executeUpdate:@"insert into ftest values ('not h!')"];
|
||||
[adb executeUpdate:@"insert into ftest values ('definitely not h!')"];
|
||||
|
||||
[adb makeFunctionNamed:@"StringStartsWithH" maximumArguments:1 withBlock:^(sqlite3_context *context, int aargc, sqlite3_value **aargv) {
|
||||
if (sqlite3_value_type(aargv[0]) == SQLITE_TEXT) {
|
||||
@autoreleasepool {
|
||||
const char *c = (const char *)sqlite3_value_text(aargv[0]);
|
||||
NSString *s = [NSString stringWithUTF8String:c];
|
||||
sqlite3_result_int(context, [s hasPrefix:@"h"]);
|
||||
[db makeFunctionNamed:@"RemoveDiacritics" arguments:1 block:^(void *context, int argc, void **argv) {
|
||||
SqliteValueType type = [self.db valueType:argv[0]];
|
||||
if (type == SqliteValueTypeNull) {
|
||||
[self.db resultNullInContext:context];
|
||||
return;
|
||||
}
|
||||
if (type != SqliteValueTypeText) {
|
||||
[self.db resultError:@"Expected text" context:context];
|
||||
return;
|
||||
}
|
||||
else {
|
||||
NSLog(@"Unknown formart for StringStartsWithH (%d) %s:%d", sqlite3_value_type(aargv[0]), __FUNCTION__, __LINE__);
|
||||
sqlite3_result_null(context);
|
||||
}
|
||||
NSString *string = [self.db valueString:argv[0]];
|
||||
NSString *result = [string stringByFoldingWithOptions:NSDiacriticInsensitiveSearch locale:nil];
|
||||
[self.db resultString:result context:context];
|
||||
}];
|
||||
|
||||
int rowCount = 0;
|
||||
FMResultSet *ars = [adb executeQuery:@"select * from ftest where StringStartsWithH(foo)"];
|
||||
while ([ars next]) {
|
||||
rowCount++;
|
||||
NSLog(@"Does %@ start with 'h'?", [rs stringForColumnIndex:0]);
|
||||
}
|
||||
FMDBQuickCheck(rowCount == 2);
|
||||
}];
|
||||
FMResultSet *rs = [db executeQuery:@"SELECT * FROM employees WHERE RemoveDiacritics(first_name) LIKE 'jose'"];
|
||||
NSAssert(rs, @"Error %@", [db lastErrorMessage]);
|
||||
|
||||
@param name Name of function
|
||||
@param name Name of function.
|
||||
|
||||
@param count Maximum number of parameters
|
||||
@param arguments Maximum number of parameters.
|
||||
|
||||
@param block The block of code for the function
|
||||
@param block The block of code for the function.
|
||||
|
||||
@see [sqlite3_create_function()](http://sqlite.org/c3ref/create_function.html)
|
||||
*/
|
||||
|
||||
- (void)makeFunctionNamed:(NSString*)name maximumArguments:(int)count withBlock:(void (^)(void *context, int argc, void **argv))block;
|
||||
- (void)makeFunctionNamed:(NSString *)name arguments:(int)arguments block:(void (^)(void *context, int argc, void * _Nonnull * _Nonnull argv))block;
|
||||
|
||||
- (void)makeFunctionNamed:(NSString *)name maximumArguments:(int)count withBlock:(void (^)(void *context, int argc, void * _Nonnull * _Nonnull argv))block __deprecated_msg("Use makeFunctionNamed:arguments:block:");
|
||||
|
||||
typedef NS_ENUM(int, SqliteValueType) {
|
||||
SqliteValueTypeInteger = 1,
|
||||
SqliteValueTypeFloat = 2,
|
||||
SqliteValueTypeText = 3,
|
||||
SqliteValueTypeBlob = 4,
|
||||
SqliteValueTypeNull = 5
|
||||
};
|
||||
|
||||
- (SqliteValueType)valueType:(void *)argv;
|
||||
|
||||
/**
|
||||
Get integer value of parameter in custom function.
|
||||
|
||||
@param value The argument whose value to return.
|
||||
@return The integer value.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (int)valueInt:(void *)value;
|
||||
|
||||
/**
|
||||
Get long value of parameter in custom function.
|
||||
|
||||
@param value The argument whose value to return.
|
||||
@return The long value.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (long long)valueLong:(void *)value;
|
||||
|
||||
/**
|
||||
Get double value of parameter in custom function.
|
||||
|
||||
@param value The argument whose value to return.
|
||||
@return The double value.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (double)valueDouble:(void *)value;
|
||||
|
||||
/**
|
||||
Get `NSData` value of parameter in custom function.
|
||||
|
||||
@param value The argument whose value to return.
|
||||
@return The data object.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (NSData * _Nullable)valueData:(void *)value;
|
||||
|
||||
/**
|
||||
Get string value of parameter in custom function.
|
||||
|
||||
@param value The argument whose value to return.
|
||||
@return The string value.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (NSString * _Nullable)valueString:(void *)value;
|
||||
|
||||
/**
|
||||
Return null value from custom function.
|
||||
|
||||
@param context The context to which the null value will be returned.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (void)resultNullInContext:(void *)context NS_SWIFT_NAME(resultNull(context:));
|
||||
|
||||
/**
|
||||
Return integer value from custom function.
|
||||
|
||||
@param value The integer value to be returned.
|
||||
@param context The context to which the value will be returned.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (void)resultInt:(int) value context:(void *)context;
|
||||
|
||||
/**
|
||||
Return long value from custom function.
|
||||
|
||||
@param value The long value to be returned.
|
||||
@param context The context to which the value will be returned.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (void)resultLong:(long long)value context:(void *)context;
|
||||
|
||||
/**
|
||||
Return double value from custom function.
|
||||
|
||||
@param value The double value to be returned.
|
||||
@param context The context to which the value will be returned.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (void)resultDouble:(double)value context:(void *)context;
|
||||
|
||||
/**
|
||||
Return `NSData` object from custom function.
|
||||
|
||||
@param data The `NSData` object to be returned.
|
||||
@param context The context to which the value will be returned.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (void)resultData:(NSData *)data context:(void *)context;
|
||||
|
||||
/**
|
||||
Return string value from custom function.
|
||||
|
||||
@param value The string value to be returned.
|
||||
@param context The context to which the value will be returned.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (void)resultString:(NSString *)value context:(void *)context;
|
||||
|
||||
/**
|
||||
Return error string from custom function.
|
||||
|
||||
@param error The error string to be returned.
|
||||
@param context The context to which the error will be returned.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (void)resultError:(NSString *)error context:(void *)context;
|
||||
|
||||
/**
|
||||
Return error code from custom function.
|
||||
|
||||
@param errorCode The integer error code to be returned.
|
||||
@param context The context to which the error will be returned.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (void)resultErrorCode:(int)errorCode context:(void *)context;
|
||||
|
||||
/**
|
||||
Report memory error in custom function.
|
||||
|
||||
@param context The context to which the error will be returned.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (void)resultErrorNoMemoryInContext:(void *)context NS_SWIFT_NAME(resultErrorNoMemory(context:));
|
||||
|
||||
/**
|
||||
Report that string or BLOB is too long to represent in custom function.
|
||||
|
||||
@param context The context to which the error will be returned.
|
||||
|
||||
@see makeFunctionNamed:arguments:block:
|
||||
*/
|
||||
- (void)resultErrorTooBigInContext:(void *)context NS_SWIFT_NAME(resultErrorTooBig(context:));
|
||||
|
||||
///---------------------
|
||||
/// @name Date formatter
|
||||
@@ -1083,7 +1280,7 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
@see storeableDateFormat:
|
||||
*/
|
||||
|
||||
- (NSDate *)dateFromString:(NSString *)s;
|
||||
- (NSDate * _Nullable)dateFromString:(NSString *)s;
|
||||
|
||||
/** Convert the supplied NSDate to NSString, using the current database formatter.
|
||||
|
||||
@@ -1160,3 +1357,4 @@ typedef int(^FMDBExecuteStatementsCallbackBlock)(NSDictionary *resultsDictionary
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
177
ios/Pods/FMDB/src/fmdb/FMDatabase.m
generated
177
ios/Pods/FMDB/src/fmdb/FMDatabase.m
generated
@@ -8,38 +8,61 @@
|
||||
#import <sqlite3.h>
|
||||
#endif
|
||||
|
||||
@interface FMDatabase ()
|
||||
@interface FMDatabase () {
|
||||
void* _db;
|
||||
BOOL _isExecutingStatement;
|
||||
NSTimeInterval _startBusyRetryTime;
|
||||
|
||||
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orDictionary:(NSDictionary *)dictionaryArgs orVAList:(va_list)args;
|
||||
- (BOOL)executeUpdate:(NSString*)sql error:(NSError**)outErr withArgumentsInArray:(NSArray*)arrayArgs orDictionary:(NSDictionary *)dictionaryArgs orVAList:(va_list)args;
|
||||
NSMutableSet *_openResultSets;
|
||||
NSMutableSet *_openFunctions;
|
||||
|
||||
NSDateFormatter *_dateFormat;
|
||||
}
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
- (FMResultSet * _Nullable)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray * _Nullable)arrayArgs orDictionary:(NSDictionary * _Nullable)dictionaryArgs orVAList:(va_list)args;
|
||||
- (BOOL)executeUpdate:(NSString *)sql error:(NSError * _Nullable *)outErr withArgumentsInArray:(NSArray * _Nullable)arrayArgs orDictionary:(NSDictionary * _Nullable)dictionaryArgs orVAList:(va_list)args;
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@end
|
||||
|
||||
@implementation FMDatabase
|
||||
@synthesize cachedStatements=_cachedStatements;
|
||||
@synthesize logsErrors=_logsErrors;
|
||||
@synthesize crashOnErrors=_crashOnErrors;
|
||||
@synthesize checkedOut=_checkedOut;
|
||||
@synthesize traceExecution=_traceExecution;
|
||||
|
||||
// Because these two properties have all of their accessor methods implemented,
|
||||
// we have to synthesize them to get the corresponding ivars. The rest of the
|
||||
// properties have their ivars synthesized automatically for us.
|
||||
|
||||
@synthesize shouldCacheStatements = _shouldCacheStatements;
|
||||
@synthesize maxBusyRetryTimeInterval = _maxBusyRetryTimeInterval;
|
||||
|
||||
#pragma mark FMDatabase instantiation and deallocation
|
||||
|
||||
+ (instancetype)databaseWithPath:(NSString*)aPath {
|
||||
+ (instancetype)databaseWithPath:(NSString *)aPath {
|
||||
return FMDBReturnAutoreleased([[self alloc] initWithPath:aPath]);
|
||||
}
|
||||
|
||||
+ (instancetype)databaseWithURL:(NSURL *)url {
|
||||
return FMDBReturnAutoreleased([[self alloc] initWithURL:url]);
|
||||
}
|
||||
|
||||
- (instancetype)init {
|
||||
return [self initWithPath:nil];
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath {
|
||||
- (instancetype)initWithURL:(NSURL *)url {
|
||||
return [self initWithPath:url.path];
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString *)path {
|
||||
|
||||
assert(sqlite3_threadsafe()); // whoa there big boy- gotta make sure sqlite it happy with what we're going to do.
|
||||
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
_databasePath = [aPath copy];
|
||||
_databasePath = [path copy];
|
||||
_openResultSets = [[NSMutableSet alloc] init];
|
||||
_db = nil;
|
||||
_logsErrors = YES;
|
||||
@@ -50,10 +73,12 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
#if ! __has_feature(objc_arc)
|
||||
- (void)finalize {
|
||||
[self close];
|
||||
[super finalize];
|
||||
}
|
||||
#endif
|
||||
|
||||
- (void)dealloc {
|
||||
[self close];
|
||||
@@ -68,12 +93,12 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
- (NSString *)databasePath {
|
||||
return _databasePath;
|
||||
- (NSURL *)databaseURL {
|
||||
return _databasePath ? [NSURL fileURLWithPath:_databasePath] : nil;
|
||||
}
|
||||
|
||||
+ (NSString*)FMDBUserVersion {
|
||||
return @"2.6.2";
|
||||
return @"2.7.2";
|
||||
}
|
||||
|
||||
// returns 0x0240 for version 2.4. This makes it super easy to do things like:
|
||||
@@ -321,7 +346,9 @@ static int FMDBDatabaseBusyHandler(void *f, int count) {
|
||||
- (void)clearCachedStatements {
|
||||
|
||||
for (NSMutableSet *statements in [_cachedStatements objectEnumerator]) {
|
||||
[statements makeObjectsPerformSelector:@selector(close)];
|
||||
for (FMStatement *statement in [statements allObjects]) {
|
||||
[statement close];
|
||||
}
|
||||
}
|
||||
|
||||
[_cachedStatements removeAllObjects];
|
||||
@@ -485,7 +512,7 @@ static int FMDBDatabaseBusyHandler(void *f, int count) {
|
||||
|
||||
#pragma mark Error routines
|
||||
|
||||
- (NSString*)lastErrorMessage {
|
||||
- (NSString *)lastErrorMessage {
|
||||
return [NSString stringWithUTF8String:sqlite3_errmsg(_db)];
|
||||
}
|
||||
|
||||
@@ -499,7 +526,11 @@ static int FMDBDatabaseBusyHandler(void *f, int count) {
|
||||
return sqlite3_errcode(_db);
|
||||
}
|
||||
|
||||
- (NSError*)errorWithMessage:(NSString*)message {
|
||||
- (int)lastExtendedErrorCode {
|
||||
return sqlite3_extended_errcode(_db);
|
||||
}
|
||||
|
||||
- (NSError*)errorWithMessage:(NSString *)message {
|
||||
NSDictionary* errorMessage = [NSDictionary dictionaryWithObject:message forKey:NSLocalizedDescriptionKey];
|
||||
|
||||
return [NSError errorWithDomain:@"FMDatabase" code:sqlite3_errcode(_db) userInfo:errorMessage];
|
||||
@@ -1075,6 +1106,12 @@ static int FMDBDatabaseBusyHandler(void *f, int count) {
|
||||
if (SQLITE_DONE == rc) {
|
||||
// all is well, let's return.
|
||||
}
|
||||
else if (SQLITE_INTERRUPT == rc) {
|
||||
if (_logsErrors) {
|
||||
NSLog(@"Error calling sqlite3_step. Query was interrupted (%d: %s) SQLITE_INTERRUPT", rc, sqlite3_errmsg(_db));
|
||||
NSLog(@"DB Query: %@", sql);
|
||||
}
|
||||
}
|
||||
else if (rc == SQLITE_ROW) {
|
||||
NSString *message = [NSString stringWithFormat:@"A executeUpdate is being called with a query string '%@'", sql];
|
||||
if (_logsErrors) {
|
||||
@@ -1259,7 +1296,7 @@ int FMDBExecuteBulkSQLCallback(void *theBlockAsVoid, int columns, char **values,
|
||||
BOOL b = [self executeUpdate:@"rollback transaction"];
|
||||
|
||||
if (b) {
|
||||
_inTransaction = NO;
|
||||
_isInTransaction = NO;
|
||||
}
|
||||
|
||||
return b;
|
||||
@@ -1269,7 +1306,7 @@ int FMDBExecuteBulkSQLCallback(void *theBlockAsVoid, int columns, char **values,
|
||||
BOOL b = [self executeUpdate:@"commit transaction"];
|
||||
|
||||
if (b) {
|
||||
_inTransaction = NO;
|
||||
_isInTransaction = NO;
|
||||
}
|
||||
|
||||
return b;
|
||||
@@ -1279,7 +1316,7 @@ int FMDBExecuteBulkSQLCallback(void *theBlockAsVoid, int columns, char **values,
|
||||
|
||||
BOOL b = [self executeUpdate:@"begin deferred transaction"];
|
||||
if (b) {
|
||||
_inTransaction = YES;
|
||||
_isInTransaction = YES;
|
||||
}
|
||||
|
||||
return b;
|
||||
@@ -1289,14 +1326,23 @@ int FMDBExecuteBulkSQLCallback(void *theBlockAsVoid, int columns, char **values,
|
||||
|
||||
BOOL b = [self executeUpdate:@"begin exclusive transaction"];
|
||||
if (b) {
|
||||
_inTransaction = YES;
|
||||
_isInTransaction = YES;
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
- (BOOL)inTransaction {
|
||||
return _inTransaction;
|
||||
return _isInTransaction;
|
||||
}
|
||||
|
||||
- (BOOL)interrupt
|
||||
{
|
||||
if (_db) {
|
||||
sqlite3_interrupt([self sqliteHandle]);
|
||||
return YES;
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
static NSString *FMDBEscapeSavePointName(NSString *savepointName) {
|
||||
@@ -1407,12 +1453,19 @@ void FMDBBlockSQLiteCallBackFunction(sqlite3_context *context, int argc, sqlite3
|
||||
void (^block)(sqlite3_context *context, int argc, sqlite3_value **argv) = (__bridge id)sqlite3_user_data(context);
|
||||
#endif
|
||||
if (block) {
|
||||
@autoreleasepool {
|
||||
block(context, argc, argv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// deprecated because "arguments" parameter is not maximum argument count, but actual argument count.
|
||||
|
||||
- (void)makeFunctionNamed:(NSString*)name maximumArguments:(int)count withBlock:(void (^)(void *context, int argc, void **argv))block {
|
||||
- (void)makeFunctionNamed:(NSString *)name maximumArguments:(int)arguments withBlock:(void (^)(void *context, int argc, void **argv))block {
|
||||
[self makeFunctionNamed:name arguments:arguments block:block];
|
||||
}
|
||||
|
||||
- (void)makeFunctionNamed:(NSString *)name arguments:(int)arguments block:(void (^)(void *context, int argc, void **argv))block {
|
||||
|
||||
if (!_openFunctions) {
|
||||
_openFunctions = [NSMutableSet new];
|
||||
@@ -1424,26 +1477,91 @@ void FMDBBlockSQLiteCallBackFunction(sqlite3_context *context, int argc, sqlite3
|
||||
|
||||
/* I tried adding custom functions to release the block when the connection is destroyed- but they seemed to never be called, so we use _openFunctions to store the values instead. */
|
||||
#if ! __has_feature(objc_arc)
|
||||
sqlite3_create_function([self sqliteHandle], [name UTF8String], count, SQLITE_UTF8, (void*)b, &FMDBBlockSQLiteCallBackFunction, 0x00, 0x00);
|
||||
sqlite3_create_function([self sqliteHandle], [name UTF8String], arguments, SQLITE_UTF8, (void*)b, &FMDBBlockSQLiteCallBackFunction, 0x00, 0x00);
|
||||
#else
|
||||
sqlite3_create_function([self sqliteHandle], [name UTF8String], count, SQLITE_UTF8, (__bridge void*)b, &FMDBBlockSQLiteCallBackFunction, 0x00, 0x00);
|
||||
sqlite3_create_function([self sqliteHandle], [name UTF8String], arguments, SQLITE_UTF8, (__bridge void*)b, &FMDBBlockSQLiteCallBackFunction, 0x00, 0x00);
|
||||
#endif
|
||||
}
|
||||
|
||||
- (SqliteValueType)valueType:(void *)value {
|
||||
return sqlite3_value_type(value);
|
||||
}
|
||||
|
||||
- (int)valueInt:(void *)value {
|
||||
return sqlite3_value_int(value);
|
||||
}
|
||||
|
||||
- (long long)valueLong:(void *)value {
|
||||
return sqlite3_value_int64(value);
|
||||
}
|
||||
|
||||
- (double)valueDouble:(void *)value {
|
||||
return sqlite3_value_double(value);
|
||||
}
|
||||
|
||||
- (NSData *)valueData:(void *)value {
|
||||
const void *bytes = sqlite3_value_blob(value);
|
||||
int length = sqlite3_value_bytes(value);
|
||||
return bytes ? [NSData dataWithBytes:bytes length:length] : nil;
|
||||
}
|
||||
|
||||
- (NSString *)valueString:(void *)value {
|
||||
const char *cString = (const char *)sqlite3_value_text(value);
|
||||
return cString ? [NSString stringWithUTF8String:cString] : nil;
|
||||
}
|
||||
|
||||
- (void)resultNullInContext:(void *)context {
|
||||
sqlite3_result_null(context);
|
||||
}
|
||||
|
||||
- (void)resultInt:(int) value context:(void *)context {
|
||||
sqlite3_result_int(context, value);
|
||||
}
|
||||
|
||||
- (void)resultLong:(long long)value context:(void *)context {
|
||||
sqlite3_result_int64(context, value);
|
||||
}
|
||||
|
||||
- (void)resultDouble:(double)value context:(void *)context {
|
||||
sqlite3_result_double(context, value);
|
||||
}
|
||||
|
||||
- (void)resultData:(NSData *)data context:(void *)context {
|
||||
sqlite3_result_blob(context, data.bytes, (int)data.length, SQLITE_TRANSIENT);
|
||||
}
|
||||
|
||||
- (void)resultString:(NSString *)value context:(void *)context {
|
||||
sqlite3_result_text(context, [value UTF8String], -1, SQLITE_TRANSIENT);
|
||||
}
|
||||
|
||||
- (void)resultError:(NSString *)error context:(void *)context {
|
||||
sqlite3_result_error(context, [error UTF8String], -1);
|
||||
}
|
||||
|
||||
- (void)resultErrorCode:(int)errorCode context:(void *)context {
|
||||
sqlite3_result_error_code(context, errorCode);
|
||||
}
|
||||
|
||||
- (void)resultErrorNoMemoryInContext:(void *)context {
|
||||
sqlite3_result_error_nomem(context);
|
||||
}
|
||||
|
||||
- (void)resultErrorTooBigInContext:(void *)context {
|
||||
sqlite3_result_error_toobig(context);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
@implementation FMStatement
|
||||
@synthesize statement=_statement;
|
||||
@synthesize query=_query;
|
||||
@synthesize useCount=_useCount;
|
||||
@synthesize inUse=_inUse;
|
||||
|
||||
#if ! __has_feature(objc_arc)
|
||||
- (void)finalize {
|
||||
[self close];
|
||||
[super finalize];
|
||||
}
|
||||
#endif
|
||||
|
||||
- (void)dealloc {
|
||||
[self close];
|
||||
@@ -1474,6 +1592,5 @@ void FMDBBlockSQLiteCallBackFunction(sqlite3_context *context, int argc, sqlite3
|
||||
return [NSString stringWithFormat:@"%@ %ld hit(s) for query %@", [super description], _useCount, _query];
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
||||
|
||||
68
ios/Pods/FMDB/src/fmdb/FMDatabaseAdditions.h
generated
68
ios/Pods/FMDB/src/fmdb/FMDatabaseAdditions.h
generated
@@ -9,6 +9,7 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "FMDatabase.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Category of additions for `<FMDatabase>` class.
|
||||
|
||||
@@ -30,7 +31,7 @@
|
||||
|
||||
@return `int` value.
|
||||
|
||||
@note To use this method from Swift, you must include `FMDatabaseAdditionsVariadic.swift` in your project.
|
||||
@note This is not available from Swift.
|
||||
*/
|
||||
|
||||
- (int)intForQuery:(NSString*)query, ...;
|
||||
@@ -42,7 +43,7 @@
|
||||
|
||||
@return `long` value.
|
||||
|
||||
@note To use this method from Swift, you must include `FMDatabaseAdditionsVariadic.swift` in your project.
|
||||
@note This is not available from Swift.
|
||||
*/
|
||||
|
||||
- (long)longForQuery:(NSString*)query, ...;
|
||||
@@ -54,7 +55,7 @@
|
||||
|
||||
@return `BOOL` value.
|
||||
|
||||
@note To use this method from Swift, you must include `FMDatabaseAdditionsVariadic.swift` in your project.
|
||||
@note This is not available from Swift.
|
||||
*/
|
||||
|
||||
- (BOOL)boolForQuery:(NSString*)query, ...;
|
||||
@@ -66,7 +67,7 @@
|
||||
|
||||
@return `double` value.
|
||||
|
||||
@note To use this method from Swift, you must include `FMDatabaseAdditionsVariadic.swift` in your project.
|
||||
@note This is not available from Swift.
|
||||
*/
|
||||
|
||||
- (double)doubleForQuery:(NSString*)query, ...;
|
||||
@@ -78,10 +79,10 @@
|
||||
|
||||
@return `NSString` value.
|
||||
|
||||
@note To use this method from Swift, you must include `FMDatabaseAdditionsVariadic.swift` in your project.
|
||||
@note This is not available from Swift.
|
||||
*/
|
||||
|
||||
- (NSString*)stringForQuery:(NSString*)query, ...;
|
||||
- (NSString * _Nullable)stringForQuery:(NSString*)query, ...;
|
||||
|
||||
/** Return `NSData` value for query
|
||||
|
||||
@@ -90,10 +91,10 @@
|
||||
|
||||
@return `NSData` value.
|
||||
|
||||
@note To use this method from Swift, you must include `FMDatabaseAdditionsVariadic.swift` in your project.
|
||||
@note This is not available from Swift.
|
||||
*/
|
||||
|
||||
- (NSData*)dataForQuery:(NSString*)query, ...;
|
||||
- (NSData * _Nullable)dataForQuery:(NSString*)query, ...;
|
||||
|
||||
/** Return `NSDate` value for query
|
||||
|
||||
@@ -102,10 +103,10 @@
|
||||
|
||||
@return `NSDate` value.
|
||||
|
||||
@note To use this method from Swift, you must include `FMDatabaseAdditionsVariadic.swift` in your project.
|
||||
@note This is not available from Swift.
|
||||
*/
|
||||
|
||||
- (NSDate*)dateForQuery:(NSString*)query, ...;
|
||||
- (NSDate * _Nullable)dateForQuery:(NSString*)query, ...;
|
||||
|
||||
|
||||
// Notice that there's no dataNoCopyForQuery:.
|
||||
@@ -141,7 +142,7 @@
|
||||
@see [SQLite File Format](http://www.sqlite.org/fileformat.html)
|
||||
*/
|
||||
|
||||
- (FMResultSet*)getSchema;
|
||||
- (FMResultSet *)getSchema;
|
||||
|
||||
/** The schema of the database.
|
||||
|
||||
@@ -191,7 +192,7 @@
|
||||
@warning Deprecated - use `<columnExists:inTableWithName:>` instead.
|
||||
*/
|
||||
|
||||
- (BOOL)columnExists:(NSString*)tableName columnName:(NSString*)columnName __attribute__ ((deprecated));
|
||||
- (BOOL)columnExists:(NSString*)tableName columnName:(NSString*)columnName __deprecated_msg("Use columnExists:inTableWithName: instead");
|
||||
|
||||
|
||||
/** Validate SQL statement
|
||||
@@ -206,7 +207,7 @@
|
||||
|
||||
*/
|
||||
|
||||
- (BOOL)validateSQL:(NSString*)sql error:(NSError**)error;
|
||||
- (BOOL)validateSQL:(NSString*)sql error:(NSError * _Nullable *)error;
|
||||
|
||||
|
||||
///-----------------------------------
|
||||
@@ -220,36 +221,16 @@
|
||||
@see setApplicationID:
|
||||
*/
|
||||
|
||||
- (uint32_t)applicationID;
|
||||
|
||||
/** Set the application ID
|
||||
|
||||
@param appID The `uint32_t` numeric value of the application ID.
|
||||
|
||||
@see applicationID
|
||||
*/
|
||||
|
||||
- (void)setApplicationID:(uint32_t)appID;
|
||||
@property (nonatomic) uint32_t applicationID;
|
||||
|
||||
#if TARGET_OS_MAC && !TARGET_OS_IPHONE
|
||||
/** Retrieve application ID string
|
||||
|
||||
@return The `NSString` value of the application ID.
|
||||
/** Retrieve application ID string
|
||||
|
||||
@see setApplicationIDString:
|
||||
*/
|
||||
|
||||
|
||||
- (NSString*)applicationIDString;
|
||||
|
||||
/** Set the application ID string
|
||||
|
||||
@param string The `NSString` value of the application ID.
|
||||
|
||||
@see applicationIDString
|
||||
*/
|
||||
|
||||
- (void)setApplicationIDString:(NSString*)string;
|
||||
@property (nonatomic, retain) NSString *applicationIDString;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -259,20 +240,11 @@
|
||||
|
||||
/** Retrieve user version
|
||||
|
||||
@return The `uint32_t` numeric value of the user version.
|
||||
|
||||
@see setUserVersion:
|
||||
*/
|
||||
|
||||
- (uint32_t)userVersion;
|
||||
|
||||
/** Set the user-version
|
||||
|
||||
@param version The `uint32_t` numeric value of the user version.
|
||||
|
||||
@see userVersion
|
||||
*/
|
||||
|
||||
- (void)setUserVersion:(uint32_t)version;
|
||||
@property (nonatomic) uint32_t userVersion;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
7
ios/Pods/FMDB/src/fmdb/FMDatabaseAdditions.m
generated
7
ios/Pods/FMDB/src/fmdb/FMDatabaseAdditions.m
generated
@@ -17,7 +17,7 @@
|
||||
#endif
|
||||
|
||||
@interface FMDatabase (PrivateStuff)
|
||||
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orDictionary:(NSDictionary *)dictionaryArgs orVAList:(va_list)args;
|
||||
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray * _Nullable)arrayArgs orDictionary:(NSDictionary * _Nullable)dictionaryArgs orVAList:(va_list)args;
|
||||
@end
|
||||
|
||||
@implementation FMDatabase (FMDatabaseAdditions)
|
||||
@@ -34,7 +34,7 @@ type ret = [resultSet sel:0]; \
|
||||
return ret;
|
||||
|
||||
|
||||
- (NSString*)stringForQuery:(NSString*)query, ... {
|
||||
- (NSString *)stringForQuery:(NSString*)query, ... {
|
||||
RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(NSString *, stringForColumnIndex);
|
||||
}
|
||||
|
||||
@@ -222,12 +222,11 @@ return ret;
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
- (BOOL)validateSQL:(NSString*)sql error:(NSError**)error {
|
||||
sqlite3_stmt *pStmt = NULL;
|
||||
BOOL validationSucceeded = YES;
|
||||
|
||||
int rc = sqlite3_prepare_v2(_db, [sql UTF8String], -1, &pStmt, 0);
|
||||
int rc = sqlite3_prepare_v2([self sqliteHandle], [sql UTF8String], -1, &pStmt, 0);
|
||||
if (rc != SQLITE_OK) {
|
||||
validationSucceeded = NO;
|
||||
if (error) {
|
||||
|
||||
128
ios/Pods/FMDB/src/fmdb/FMDatabasePool.h
generated
Normal file → Executable file
128
ios/Pods/FMDB/src/fmdb/FMDatabasePool.h
generated
Normal file → Executable file
@@ -8,6 +8,8 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class FMDatabase;
|
||||
|
||||
/** Pool of `<FMDatabase>` objects.
|
||||
@@ -28,27 +30,15 @@
|
||||
in the main.m file.
|
||||
*/
|
||||
|
||||
@interface FMDatabasePool : NSObject {
|
||||
NSString *_path;
|
||||
|
||||
dispatch_queue_t _lockQueue;
|
||||
|
||||
NSMutableArray *_databaseInPool;
|
||||
NSMutableArray *_databaseOutPool;
|
||||
|
||||
__unsafe_unretained id _delegate;
|
||||
|
||||
NSUInteger _maximumNumberOfDatabasesToCreate;
|
||||
int _openFlags;
|
||||
}
|
||||
@interface FMDatabasePool : NSObject
|
||||
|
||||
/** Database path */
|
||||
|
||||
@property (atomic, retain) NSString *path;
|
||||
@property (atomic, copy, nullable) NSString *path;
|
||||
|
||||
/** Delegate object */
|
||||
|
||||
@property (atomic, assign) id delegate;
|
||||
@property (atomic, assign, nullable) id delegate;
|
||||
|
||||
/** Maximum number of databases to create */
|
||||
|
||||
@@ -58,6 +48,10 @@
|
||||
|
||||
@property (atomic, readonly) int openFlags;
|
||||
|
||||
/** Custom virtual file system name */
|
||||
|
||||
@property (atomic, copy, nullable) NSString *vfsName;
|
||||
|
||||
|
||||
///---------------------
|
||||
/// @name Initialization
|
||||
@@ -70,17 +64,36 @@
|
||||
@return The `FMDatabasePool` object. `nil` on error.
|
||||
*/
|
||||
|
||||
+ (instancetype)databasePoolWithPath:(NSString*)aPath;
|
||||
+ (instancetype)databasePoolWithPath:(NSString * _Nullable)aPath;
|
||||
|
||||
/** Create pool using path and specified flags
|
||||
/** Create pool using file URL.
|
||||
|
||||
@param aPath The file path of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database
|
||||
@param url The file `NSURL` of the database.
|
||||
|
||||
@return The `FMDatabasePool` object. `nil` on error.
|
||||
*/
|
||||
|
||||
+ (instancetype)databasePoolWithPath:(NSString*)aPath flags:(int)openFlags;
|
||||
+ (instancetype)databasePoolWithURL:(NSURL * _Nullable)url;
|
||||
|
||||
/** Create pool using path and specified flags
|
||||
|
||||
@param aPath The file path of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database.
|
||||
|
||||
@return The `FMDatabasePool` object. `nil` on error.
|
||||
*/
|
||||
|
||||
+ (instancetype)databasePoolWithPath:(NSString * _Nullable)aPath flags:(int)openFlags;
|
||||
|
||||
/** Create pool using file URL and specified flags
|
||||
|
||||
@param url The file `NSURL` of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database.
|
||||
|
||||
@return The `FMDatabasePool` object. `nil` on error.
|
||||
*/
|
||||
|
||||
+ (instancetype)databasePoolWithURL:(NSURL * _Nullable)url flags:(int)openFlags;
|
||||
|
||||
/** Create pool using path.
|
||||
|
||||
@@ -89,7 +102,16 @@
|
||||
@return The `FMDatabasePool` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath;
|
||||
- (instancetype)initWithPath:(NSString * _Nullable)aPath;
|
||||
|
||||
/** Create pool using file URL.
|
||||
|
||||
@param url The file `NSURL of the database.
|
||||
|
||||
@return The `FMDatabasePool` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithURL:(NSURL * _Nullable)url;
|
||||
|
||||
/** Create pool using path and specified flags.
|
||||
|
||||
@@ -99,32 +121,67 @@
|
||||
@return The `FMDatabasePool` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags;
|
||||
- (instancetype)initWithPath:(NSString * _Nullable)aPath flags:(int)openFlags;
|
||||
|
||||
/** Create pool using file URL and specified flags.
|
||||
|
||||
@param url The file `NSURL` of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database
|
||||
|
||||
@return The `FMDatabasePool` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithURL:(NSURL * _Nullable)url flags:(int)openFlags;
|
||||
|
||||
/** Create pool using path and specified flags.
|
||||
|
||||
@param aPath The file path of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database
|
||||
@param vfsName The name of a custom virtual file system
|
||||
|
||||
@return The `FMDatabasePool` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithPath:(NSString * _Nullable)aPath flags:(int)openFlags vfs:(NSString * _Nullable)vfsName;
|
||||
|
||||
/** Create pool using file URL and specified flags.
|
||||
|
||||
@param url The file `NSURL` of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database
|
||||
@param vfsName The name of a custom virtual file system
|
||||
|
||||
@return The `FMDatabasePool` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithURL:(NSURL * _Nullable)url flags:(int)openFlags vfs:(NSString * _Nullable)vfsName;
|
||||
|
||||
/** Returns the Class of 'FMDatabase' subclass, that will be used to instantiate database object.
|
||||
|
||||
Subclasses can override this method to return specified Class of 'FMDatabase' subclass.
|
||||
|
||||
@return The Class of 'FMDatabase' subclass, that will be used to instantiate database object.
|
||||
*/
|
||||
|
||||
+ (Class)databaseClass;
|
||||
|
||||
///------------------------------------------------
|
||||
/// @name Keeping track of checked in/out databases
|
||||
///------------------------------------------------
|
||||
|
||||
/** Number of checked-in databases in pool
|
||||
|
||||
@returns Number of databases
|
||||
*/
|
||||
|
||||
- (NSUInteger)countOfCheckedInDatabases;
|
||||
@property (nonatomic, readonly) NSUInteger countOfCheckedInDatabases;
|
||||
|
||||
/** Number of checked-out databases in pool
|
||||
|
||||
@returns Number of databases
|
||||
*/
|
||||
|
||||
- (NSUInteger)countOfCheckedOutDatabases;
|
||||
@property (nonatomic, readonly) NSUInteger countOfCheckedOutDatabases;
|
||||
|
||||
/** Total number of databases in pool
|
||||
|
||||
@returns Number of databases
|
||||
*/
|
||||
|
||||
- (NSUInteger)countOfOpenDatabases;
|
||||
@property (nonatomic, readonly) NSUInteger countOfOpenDatabases;
|
||||
|
||||
/** Release all databases in pool */
|
||||
|
||||
@@ -139,21 +196,21 @@
|
||||
@param block The code to be run on the `FMDatabasePool` pool.
|
||||
*/
|
||||
|
||||
- (void)inDatabase:(void (^)(FMDatabase *db))block;
|
||||
- (void)inDatabase:(__attribute__((noescape)) void (^)(FMDatabase *db))block;
|
||||
|
||||
/** Synchronously perform database operations in pool using transaction.
|
||||
|
||||
@param block The code to be run on the `FMDatabasePool` pool.
|
||||
*/
|
||||
|
||||
- (void)inTransaction:(void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
- (void)inTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
|
||||
/** Synchronously perform database operations in pool using deferred transaction.
|
||||
|
||||
@param block The code to be run on the `FMDatabasePool` pool.
|
||||
*/
|
||||
|
||||
- (void)inDeferredTransaction:(void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
- (void)inDeferredTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
|
||||
/** Synchronously perform database operations in pool using save point.
|
||||
|
||||
@@ -164,7 +221,7 @@
|
||||
@warning You can not nest these, since calling it will pull another database out of the pool and you'll get a deadlock. If you need to nest, use `<[FMDatabase startSavePointWithName:error:]>` instead.
|
||||
*/
|
||||
|
||||
- (NSError*)inSavePoint:(void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
- (NSError * _Nullable)inSavePoint:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
|
||||
@end
|
||||
|
||||
@@ -198,3 +255,4 @@
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
49
ios/Pods/FMDB/src/fmdb/FMDatabasePool.m
generated
Normal file → Executable file
49
ios/Pods/FMDB/src/fmdb/FMDatabasePool.m
generated
Normal file → Executable file
@@ -15,7 +15,12 @@
|
||||
#import "FMDatabasePool.h"
|
||||
#import "FMDatabase.h"
|
||||
|
||||
@interface FMDatabasePool()
|
||||
@interface FMDatabasePool () {
|
||||
dispatch_queue_t _lockQueue;
|
||||
|
||||
NSMutableArray *_databaseInPool;
|
||||
NSMutableArray *_databaseOutPool;
|
||||
}
|
||||
|
||||
- (void)pushDatabaseBackInPool:(FMDatabase*)db;
|
||||
- (FMDatabase*)db;
|
||||
@@ -30,15 +35,27 @@
|
||||
@synthesize openFlags=_openFlags;
|
||||
|
||||
|
||||
+ (instancetype)databasePoolWithPath:(NSString*)aPath {
|
||||
+ (instancetype)databasePoolWithPath:(NSString *)aPath {
|
||||
return FMDBReturnAutoreleased([[self alloc] initWithPath:aPath]);
|
||||
}
|
||||
|
||||
+ (instancetype)databasePoolWithPath:(NSString*)aPath flags:(int)openFlags {
|
||||
+ (instancetype)databasePoolWithURL:(NSURL *)url {
|
||||
return FMDBReturnAutoreleased([[self alloc] initWithPath:url.path]);
|
||||
}
|
||||
|
||||
+ (instancetype)databasePoolWithPath:(NSString *)aPath flags:(int)openFlags {
|
||||
return FMDBReturnAutoreleased([[self alloc] initWithPath:aPath flags:openFlags]);
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags {
|
||||
+ (instancetype)databasePoolWithURL:(NSURL *)url flags:(int)openFlags {
|
||||
return FMDBReturnAutoreleased([[self alloc] initWithPath:url.path flags:openFlags]);
|
||||
}
|
||||
|
||||
- (instancetype)initWithURL:(NSURL *)url flags:(int)openFlags vfs:(NSString *)vfsName {
|
||||
return [self initWithPath:url.path flags:openFlags vfs:vfsName];
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags vfs:(NSString *)vfsName {
|
||||
|
||||
self = [super init];
|
||||
|
||||
@@ -48,21 +65,36 @@
|
||||
_databaseInPool = FMDBReturnRetained([NSMutableArray array]);
|
||||
_databaseOutPool = FMDBReturnRetained([NSMutableArray array]);
|
||||
_openFlags = openFlags;
|
||||
_vfsName = [vfsName copy];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath
|
||||
{
|
||||
- (instancetype)initWithPath:(NSString *)aPath flags:(int)openFlags {
|
||||
return [self initWithPath:aPath flags:openFlags vfs:nil];
|
||||
}
|
||||
|
||||
- (instancetype)initWithURL:(NSURL *)url flags:(int)openFlags {
|
||||
return [self initWithPath:url.path flags:openFlags vfs:nil];
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath {
|
||||
// default flags for sqlite3_open
|
||||
return [self initWithPath:aPath flags:SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE];
|
||||
}
|
||||
|
||||
- (instancetype)initWithURL:(NSURL *)url {
|
||||
return [self initWithPath:url.path];
|
||||
}
|
||||
|
||||
- (instancetype)init {
|
||||
return [self initWithPath:nil];
|
||||
}
|
||||
|
||||
+ (Class)databaseClass {
|
||||
return [FMDatabase class];
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
|
||||
@@ -70,6 +102,7 @@
|
||||
FMDBRelease(_path);
|
||||
FMDBRelease(_databaseInPool);
|
||||
FMDBRelease(_databaseOutPool);
|
||||
FMDBRelease(_vfsName);
|
||||
|
||||
if (_lockQueue) {
|
||||
FMDBDispatchQueueRelease(_lockQueue);
|
||||
@@ -128,13 +161,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
db = [FMDatabase databaseWithPath:self->_path];
|
||||
db = [[[self class] databaseClass] databaseWithPath:self->_path];
|
||||
shouldNotifyDelegate = YES;
|
||||
}
|
||||
|
||||
//This ensures that the db is opened before returning
|
||||
#if SQLITE_VERSION_NUMBER >= 3005000
|
||||
BOOL success = [db openWithFlags:self->_openFlags];
|
||||
BOOL success = [db openWithFlags:self->_openFlags vfs:self->_vfsName];
|
||||
#else
|
||||
BOOL success = [db open];
|
||||
#endif
|
||||
|
||||
95
ios/Pods/FMDB/src/fmdb/FMDatabaseQueue.h
generated
Normal file → Executable file
95
ios/Pods/FMDB/src/fmdb/FMDatabaseQueue.h
generated
Normal file → Executable file
@@ -8,6 +8,8 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class FMDatabase;
|
||||
|
||||
/** To perform queries and updates on multiple threads, you'll want to use `FMDatabaseQueue`.
|
||||
@@ -60,21 +62,19 @@
|
||||
|
||||
*/
|
||||
|
||||
@interface FMDatabaseQueue : NSObject {
|
||||
NSString *_path;
|
||||
dispatch_queue_t _queue;
|
||||
FMDatabase *_db;
|
||||
int _openFlags;
|
||||
}
|
||||
|
||||
@interface FMDatabaseQueue : NSObject
|
||||
/** Path of database */
|
||||
|
||||
@property (atomic, retain) NSString *path;
|
||||
@property (atomic, retain, nullable) NSString *path;
|
||||
|
||||
/** Open flags */
|
||||
|
||||
@property (atomic, readonly) int openFlags;
|
||||
|
||||
/** Custom virtual file system name */
|
||||
|
||||
@property (atomic, copy, nullable) NSString *vfsName;
|
||||
|
||||
///----------------------------------------------------
|
||||
/// @name Initialization, opening, and closing of queue
|
||||
///----------------------------------------------------
|
||||
@@ -86,16 +86,34 @@
|
||||
@return The `FMDatabaseQueue` object. `nil` on error.
|
||||
*/
|
||||
|
||||
+ (instancetype)databaseQueueWithPath:(NSString*)aPath;
|
||||
+ (instancetype)databaseQueueWithPath:(NSString * _Nullable)aPath;
|
||||
|
||||
/** Create queue using file URL.
|
||||
|
||||
@param url The file `NSURL` of the database.
|
||||
|
||||
@return The `FMDatabaseQueue` object. `nil` on error.
|
||||
*/
|
||||
|
||||
+ (instancetype)databaseQueueWithURL:(NSURL * _Nullable)url;
|
||||
|
||||
/** Create queue using path and specified flags.
|
||||
|
||||
@param aPath The file path of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database
|
||||
@param openFlags Flags passed to the openWithFlags method of the database.
|
||||
|
||||
@return The `FMDatabaseQueue` object. `nil` on error.
|
||||
*/
|
||||
+ (instancetype)databaseQueueWithPath:(NSString*)aPath flags:(int)openFlags;
|
||||
+ (instancetype)databaseQueueWithPath:(NSString * _Nullable)aPath flags:(int)openFlags;
|
||||
|
||||
/** Create queue using file URL and specified flags.
|
||||
|
||||
@param url The file `NSURL` of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database.
|
||||
|
||||
@return The `FMDatabaseQueue` object. `nil` on error.
|
||||
*/
|
||||
+ (instancetype)databaseQueueWithURL:(NSURL * _Nullable)url flags:(int)openFlags;
|
||||
|
||||
/** Create queue using path.
|
||||
|
||||
@@ -104,17 +122,36 @@
|
||||
@return The `FMDatabaseQueue` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath;
|
||||
- (instancetype)initWithPath:(NSString * _Nullable)aPath;
|
||||
|
||||
/** Create queue using path and specified flags.
|
||||
/** Create queue using file URL.
|
||||
|
||||
@param aPath The file path of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database
|
||||
@param url The file `NSURL of the database.
|
||||
|
||||
@return The `FMDatabaseQueue` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags;
|
||||
- (instancetype)initWithURL:(NSURL * _Nullable)url;
|
||||
|
||||
/** Create queue using path and specified flags.
|
||||
|
||||
@param aPath The file path of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database.
|
||||
|
||||
@return The `FMDatabaseQueue` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithPath:(NSString * _Nullable)aPath flags:(int)openFlags;
|
||||
|
||||
/** Create queue using file URL and specified flags.
|
||||
|
||||
@param url The file path of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database.
|
||||
|
||||
@return The `FMDatabaseQueue` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithURL:(NSURL * _Nullable)url flags:(int)openFlags;
|
||||
|
||||
/** Create queue using path and specified flags.
|
||||
|
||||
@@ -125,7 +162,18 @@
|
||||
@return The `FMDatabaseQueue` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags vfs:(NSString *)vfsName;
|
||||
- (instancetype)initWithPath:(NSString * _Nullable)aPath flags:(int)openFlags vfs:(NSString * _Nullable)vfsName;
|
||||
|
||||
/** Create queue using file URL and specified flags.
|
||||
|
||||
@param url The file `NSURL of the database.
|
||||
@param openFlags Flags passed to the openWithFlags method of the database
|
||||
@param vfsName The name of a custom virtual file system
|
||||
|
||||
@return The `FMDatabaseQueue` object. `nil` on error.
|
||||
*/
|
||||
|
||||
- (instancetype)initWithURL:(NSURL * _Nullable)url flags:(int)openFlags vfs:(NSString * _Nullable)vfsName;
|
||||
|
||||
/** Returns the Class of 'FMDatabase' subclass, that will be used to instantiate database object.
|
||||
|
||||
@@ -140,6 +188,10 @@
|
||||
|
||||
- (void)close;
|
||||
|
||||
/** Interupt pending database operation. */
|
||||
|
||||
- (void)interrupt;
|
||||
|
||||
///-----------------------------------------------
|
||||
/// @name Dispatching database operations to queue
|
||||
///-----------------------------------------------
|
||||
@@ -149,21 +201,21 @@
|
||||
@param block The code to be run on the queue of `FMDatabaseQueue`
|
||||
*/
|
||||
|
||||
- (void)inDatabase:(void (^)(FMDatabase *db))block;
|
||||
- (void)inDatabase:(__attribute__((noescape)) void (^)(FMDatabase *db))block;
|
||||
|
||||
/** Synchronously perform database operations on queue, using transactions.
|
||||
|
||||
@param block The code to be run on the queue of `FMDatabaseQueue`
|
||||
*/
|
||||
|
||||
- (void)inTransaction:(void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
- (void)inTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
|
||||
/** Synchronously perform database operations on queue, using deferred transactions.
|
||||
|
||||
@param block The code to be run on the queue of `FMDatabaseQueue`
|
||||
*/
|
||||
|
||||
- (void)inDeferredTransaction:(void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
- (void)inDeferredTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
|
||||
///-----------------------------------------------
|
||||
/// @name Dispatching database operations to queue
|
||||
@@ -176,7 +228,8 @@
|
||||
|
||||
// NOTE: you can not nest these, since calling it will pull another database out of the pool and you'll get a deadlock.
|
||||
// If you need to nest, use FMDatabase's startSavePointWithName:error: instead.
|
||||
- (NSError*)inSavePoint:(void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
- (NSError * _Nullable)inSavePoint:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
51
ios/Pods/FMDB/src/fmdb/FMDatabaseQueue.m
generated
Normal file → Executable file
51
ios/Pods/FMDB/src/fmdb/FMDatabaseQueue.m
generated
Normal file → Executable file
@@ -30,13 +30,15 @@
|
||||
*/
|
||||
static const void * const kDispatchQueueSpecificKey = &kDispatchQueueSpecificKey;
|
||||
|
||||
@interface FMDatabaseQueue () {
|
||||
dispatch_queue_t _queue;
|
||||
FMDatabase *_db;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation FMDatabaseQueue
|
||||
|
||||
@synthesize path = _path;
|
||||
@synthesize openFlags = _openFlags;
|
||||
|
||||
+ (instancetype)databaseQueueWithPath:(NSString*)aPath {
|
||||
|
||||
+ (instancetype)databaseQueueWithPath:(NSString *)aPath {
|
||||
FMDatabaseQueue *q = [[self alloc] initWithPath:aPath];
|
||||
|
||||
FMDBAutorelease(q);
|
||||
@@ -44,8 +46,11 @@ static const void * const kDispatchQueueSpecificKey = &kDispatchQueueSpecificKey
|
||||
return q;
|
||||
}
|
||||
|
||||
+ (instancetype)databaseQueueWithPath:(NSString*)aPath flags:(int)openFlags {
|
||||
+ (instancetype)databaseQueueWithURL:(NSURL *)url {
|
||||
return [self databaseQueueWithPath:url.path];
|
||||
}
|
||||
|
||||
+ (instancetype)databaseQueueWithPath:(NSString *)aPath flags:(int)openFlags {
|
||||
FMDatabaseQueue *q = [[self alloc] initWithPath:aPath flags:openFlags];
|
||||
|
||||
FMDBAutorelease(q);
|
||||
@@ -53,12 +58,19 @@ static const void * const kDispatchQueueSpecificKey = &kDispatchQueueSpecificKey
|
||||
return q;
|
||||
}
|
||||
|
||||
+ (instancetype)databaseQueueWithURL:(NSURL *)url flags:(int)openFlags {
|
||||
return [self databaseQueueWithPath:url.path flags:openFlags];
|
||||
}
|
||||
|
||||
+ (Class)databaseClass {
|
||||
return [FMDatabase class];
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags vfs:(NSString *)vfsName {
|
||||
- (instancetype)initWithURL:(NSURL *)url flags:(int)openFlags vfs:(NSString *)vfsName {
|
||||
return [self initWithPath:url.path flags:openFlags vfs:vfsName];
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags vfs:(NSString *)vfsName {
|
||||
self = [super init];
|
||||
|
||||
if (self != nil) {
|
||||
@@ -82,17 +94,25 @@ static const void * const kDispatchQueueSpecificKey = &kDispatchQueueSpecificKey
|
||||
_queue = dispatch_queue_create([[NSString stringWithFormat:@"fmdb.%@", self] UTF8String], NULL);
|
||||
dispatch_queue_set_specific(_queue, kDispatchQueueSpecificKey, (__bridge void *)self, NULL);
|
||||
_openFlags = openFlags;
|
||||
_vfsName = [vfsName copy];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags {
|
||||
- (instancetype)initWithPath:(NSString *)aPath flags:(int)openFlags {
|
||||
return [self initWithPath:aPath flags:openFlags vfs:nil];
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString*)aPath {
|
||||
- (instancetype)initWithURL:(NSURL *)url flags:(int)openFlags {
|
||||
return [self initWithPath:url.path flags:openFlags vfs:nil];
|
||||
}
|
||||
|
||||
- (instancetype)initWithURL:(NSURL *)url {
|
||||
return [self initWithPath:url.path];
|
||||
}
|
||||
|
||||
- (instancetype)initWithPath:(NSString *)aPath {
|
||||
// default flags for sqlite3_open
|
||||
return [self initWithPath:aPath flags:SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE vfs:nil];
|
||||
}
|
||||
@@ -103,9 +123,9 @@ static const void * const kDispatchQueueSpecificKey = &kDispatchQueueSpecificKey
|
||||
|
||||
|
||||
- (void)dealloc {
|
||||
|
||||
FMDBRelease(_db);
|
||||
FMDBRelease(_path);
|
||||
FMDBRelease(_vfsName);
|
||||
|
||||
if (_queue) {
|
||||
FMDBDispatchQueueRelease(_queue);
|
||||
@@ -126,12 +146,16 @@ static const void * const kDispatchQueueSpecificKey = &kDispatchQueueSpecificKey
|
||||
FMDBRelease(self);
|
||||
}
|
||||
|
||||
- (void)interrupt {
|
||||
[[self database] interrupt];
|
||||
}
|
||||
|
||||
- (FMDatabase*)database {
|
||||
if (!_db) {
|
||||
_db = FMDBReturnRetained([FMDatabase databaseWithPath:_path]);
|
||||
_db = FMDBReturnRetained([[[self class] databaseClass] databaseWithPath:_path]);
|
||||
|
||||
#if SQLITE_VERSION_NUMBER >= 3005000
|
||||
BOOL success = [_db openWithFlags:_openFlags];
|
||||
BOOL success = [_db openWithFlags:_openFlags vfs:_vfsName];
|
||||
#else
|
||||
BOOL success = [_db open];
|
||||
#endif
|
||||
@@ -147,10 +171,12 @@ static const void * const kDispatchQueueSpecificKey = &kDispatchQueueSpecificKey
|
||||
}
|
||||
|
||||
- (void)inDatabase:(void (^)(FMDatabase *db))block {
|
||||
#ifndef NDEBUG
|
||||
/* Get the currently executing queue (which should probably be nil, but in theory could be another DB queue
|
||||
* and then check it against self to make sure we're not about to deadlock. */
|
||||
FMDatabaseQueue *currentSyncQueue = (__bridge id)dispatch_get_specific(kDispatchQueueSpecificKey);
|
||||
assert(currentSyncQueue != self && "inDatabase: was called reentrantly on the same queue, which would lead to a deadlock");
|
||||
#endif
|
||||
|
||||
FMDBRetain(self);
|
||||
|
||||
@@ -175,7 +201,6 @@ static const void * const kDispatchQueueSpecificKey = &kDispatchQueueSpecificKey
|
||||
FMDBRelease(self);
|
||||
}
|
||||
|
||||
|
||||
- (void)beginTransaction:(BOOL)useDeferred withBlock:(void (^)(FMDatabase *db, BOOL *rollback))block {
|
||||
FMDBRetain(self);
|
||||
dispatch_sync(_queue, ^() {
|
||||
|
||||
79
ios/Pods/FMDB/src/fmdb/FMResultSet.h
generated
79
ios/Pods/FMDB/src/fmdb/FMResultSet.h
generated
@@ -1,5 +1,7 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
#ifndef __has_feature // Optional.
|
||||
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
||||
#endif
|
||||
@@ -22,13 +24,9 @@
|
||||
- `<FMDatabase>`
|
||||
*/
|
||||
|
||||
@interface FMResultSet : NSObject {
|
||||
FMDatabase *_parentDB;
|
||||
FMStatement *_statement;
|
||||
@interface FMResultSet : NSObject
|
||||
|
||||
NSString *_query;
|
||||
NSMutableDictionary *_columnNameToIndexMap;
|
||||
}
|
||||
@property (nonatomic, retain, nullable) FMDatabase *parentDB;
|
||||
|
||||
///-----------------
|
||||
/// @name Properties
|
||||
@@ -36,7 +34,7 @@
|
||||
|
||||
/** Executed query */
|
||||
|
||||
@property (atomic, retain) NSString *query;
|
||||
@property (atomic, retain, nullable) NSString *query;
|
||||
|
||||
/** `NSMutableDictionary` mapping column names to numeric index */
|
||||
|
||||
@@ -44,7 +42,7 @@
|
||||
|
||||
/** `FMStatement` used by result set. */
|
||||
|
||||
@property (atomic, retain) FMStatement *statement;
|
||||
@property (atomic, retain, nullable) FMStatement *statement;
|
||||
|
||||
///------------------------------------
|
||||
/// @name Creating and closing database
|
||||
@@ -65,8 +63,6 @@
|
||||
|
||||
- (void)close;
|
||||
|
||||
- (void)setParentDB:(FMDatabase *)newDb;
|
||||
|
||||
///---------------------------------------
|
||||
/// @name Iterating through the result set
|
||||
///---------------------------------------
|
||||
@@ -93,7 +89,7 @@
|
||||
@see hasAnotherRow
|
||||
*/
|
||||
|
||||
- (BOOL)nextWithError:(NSError **)outErr;
|
||||
- (BOOL)nextWithError:(NSError * _Nullable *)outErr;
|
||||
|
||||
/** Did the last call to `<next>` succeed in retrieving another row?
|
||||
|
||||
@@ -115,7 +111,7 @@
|
||||
@return Integer value of the number of columns.
|
||||
*/
|
||||
|
||||
- (int)columnCount;
|
||||
@property (nonatomic, readonly) int columnCount;
|
||||
|
||||
/** Column index for column name
|
||||
|
||||
@@ -133,7 +129,7 @@
|
||||
@return columnName `NSString` value of the name of the column.
|
||||
*/
|
||||
|
||||
- (NSString*)columnNameForIndex:(int)columnIdx;
|
||||
- (NSString * _Nullable)columnNameForIndex:(int)columnIdx;
|
||||
|
||||
/** Result set integer value for column.
|
||||
|
||||
@@ -249,39 +245,39 @@
|
||||
|
||||
@param columnName `NSString` value of the name of the column.
|
||||
|
||||
@return `NSString` value of the result set's column.
|
||||
@return String value of the result set's column.
|
||||
|
||||
*/
|
||||
|
||||
- (NSString*)stringForColumn:(NSString*)columnName;
|
||||
- (NSString * _Nullable)stringForColumn:(NSString*)columnName;
|
||||
|
||||
/** Result set `NSString` value for column.
|
||||
|
||||
@param columnIdx Zero-based index for column.
|
||||
|
||||
@return `NSString` value of the result set's column.
|
||||
@return String value of the result set's column.
|
||||
*/
|
||||
|
||||
- (NSString*)stringForColumnIndex:(int)columnIdx;
|
||||
- (NSString * _Nullable)stringForColumnIndex:(int)columnIdx;
|
||||
|
||||
/** Result set `NSDate` value for column.
|
||||
|
||||
@param columnName `NSString` value of the name of the column.
|
||||
|
||||
@return `NSDate` value of the result set's column.
|
||||
@return Date value of the result set's column.
|
||||
*/
|
||||
|
||||
- (NSDate*)dateForColumn:(NSString*)columnName;
|
||||
- (NSDate * _Nullable)dateForColumn:(NSString*)columnName;
|
||||
|
||||
/** Result set `NSDate` value for column.
|
||||
|
||||
@param columnIdx Zero-based index for column.
|
||||
|
||||
@return `NSDate` value of the result set's column.
|
||||
@return Date value of the result set's column.
|
||||
|
||||
*/
|
||||
|
||||
- (NSDate*)dateForColumnIndex:(int)columnIdx;
|
||||
- (NSDate * _Nullable)dateForColumnIndex:(int)columnIdx;
|
||||
|
||||
/** Result set `NSData` value for column.
|
||||
|
||||
@@ -289,20 +285,20 @@
|
||||
|
||||
@param columnName `NSString` value of the name of the column.
|
||||
|
||||
@return `NSData` value of the result set's column.
|
||||
@return Data value of the result set's column.
|
||||
|
||||
*/
|
||||
|
||||
- (NSData*)dataForColumn:(NSString*)columnName;
|
||||
- (NSData * _Nullable)dataForColumn:(NSString*)columnName;
|
||||
|
||||
/** Result set `NSData` value for column.
|
||||
|
||||
@param columnIdx Zero-based index for column.
|
||||
|
||||
@return `NSData` value of the result set's column.
|
||||
@return Data value of the result set's column.
|
||||
*/
|
||||
|
||||
- (NSData*)dataForColumnIndex:(int)columnIdx;
|
||||
- (NSData * _Nullable)dataForColumnIndex:(int)columnIdx;
|
||||
|
||||
/** Result set `(const unsigned char *)` value for column.
|
||||
|
||||
@@ -311,7 +307,9 @@
|
||||
@return `(const unsigned char *)` value of the result set's column.
|
||||
*/
|
||||
|
||||
- (const unsigned char *)UTF8StringForColumnName:(NSString*)columnName;
|
||||
- (const unsigned char * _Nullable)UTF8StringForColumn:(NSString*)columnName;
|
||||
|
||||
- (const unsigned char * _Nullable)UTF8StringForColumnName:(NSString*)columnName __deprecated_msg("Use UTF8StringForColumn instead");
|
||||
|
||||
/** Result set `(const unsigned char *)` value for column.
|
||||
|
||||
@@ -320,18 +318,20 @@
|
||||
@return `(const unsigned char *)` value of the result set's column.
|
||||
*/
|
||||
|
||||
- (const unsigned char *)UTF8StringForColumnIndex:(int)columnIdx;
|
||||
- (const unsigned char * _Nullable)UTF8StringForColumnIndex:(int)columnIdx;
|
||||
|
||||
/** Result set object for column.
|
||||
|
||||
@param columnName `NSString` value of the name of the column.
|
||||
@param columnName Name of the column.
|
||||
|
||||
@return Either `NSNumber`, `NSString`, `NSData`, or `NSNull`. If the column was `NULL`, this returns `[NSNull null]` object.
|
||||
|
||||
@see objectForKeyedSubscript:
|
||||
*/
|
||||
|
||||
- (id)objectForColumnName:(NSString*)columnName;
|
||||
- (id _Nullable)objectForColumn:(NSString*)columnName;
|
||||
|
||||
- (id _Nullable)objectForColumnName:(NSString*)columnName __deprecated_msg("Use objectForColumn instead");
|
||||
|
||||
/** Result set object for column.
|
||||
|
||||
@@ -342,7 +342,7 @@
|
||||
@see objectAtIndexedSubscript:
|
||||
*/
|
||||
|
||||
- (id)objectForColumnIndex:(int)columnIdx;
|
||||
- (id _Nullable)objectForColumnIndex:(int)columnIdx;
|
||||
|
||||
/** Result set object for column.
|
||||
|
||||
@@ -363,7 +363,7 @@
|
||||
@return Either `NSNumber`, `NSString`, `NSData`, or `NSNull`. If the column was `NULL`, this returns `[NSNull null]` object.
|
||||
*/
|
||||
|
||||
- (id)objectForKeyedSubscript:(NSString *)columnName;
|
||||
- (id _Nullable)objectForKeyedSubscript:(NSString *)columnName;
|
||||
|
||||
/** Result set object for column.
|
||||
|
||||
@@ -384,13 +384,13 @@
|
||||
@return Either `NSNumber`, `NSString`, `NSData`, or `NSNull`. If the column was `NULL`, this returns `[NSNull null]` object.
|
||||
*/
|
||||
|
||||
- (id)objectAtIndexedSubscript:(int)columnIdx;
|
||||
- (id _Nullable)objectAtIndexedSubscript:(int)columnIdx;
|
||||
|
||||
/** Result set `NSData` value for column.
|
||||
|
||||
@param columnName `NSString` value of the name of the column.
|
||||
|
||||
@return `NSData` value of the result set's column.
|
||||
@return Data value of the result set's column.
|
||||
|
||||
@warning If you are going to use this data after you iterate over the next row, or after you close the
|
||||
result set, make sure to make a copy of the data first (or just use `<dataForColumn:>`/`<dataForColumnIndex:>`)
|
||||
@@ -398,13 +398,13 @@ If you don't, you're going to be in a world of hurt when you try and use the dat
|
||||
|
||||
*/
|
||||
|
||||
- (NSData*)dataNoCopyForColumn:(NSString*)columnName NS_RETURNS_NOT_RETAINED;
|
||||
- (NSData * _Nullable)dataNoCopyForColumn:(NSString *)columnName NS_RETURNS_NOT_RETAINED;
|
||||
|
||||
/** Result set `NSData` value for column.
|
||||
|
||||
@param columnIdx Zero-based index for column.
|
||||
|
||||
@return `NSData` value of the result set's column.
|
||||
@return Data value of the result set's column.
|
||||
|
||||
@warning If you are going to use this data after you iterate over the next row, or after you close the
|
||||
result set, make sure to make a copy of the data first (or just use `<dataForColumn:>`/`<dataForColumnIndex:>`)
|
||||
@@ -412,7 +412,7 @@ If you don't, you're going to be in a world of hurt when you try and use the dat
|
||||
|
||||
*/
|
||||
|
||||
- (NSData*)dataNoCopyForColumnIndex:(int)columnIdx NS_RETURNS_NOT_RETAINED;
|
||||
- (NSData * _Nullable)dataNoCopyForColumnIndex:(int)columnIdx NS_RETURNS_NOT_RETAINED;
|
||||
|
||||
/** Is the column `NULL`?
|
||||
|
||||
@@ -435,12 +435,10 @@ If you don't, you're going to be in a world of hurt when you try and use the dat
|
||||
|
||||
/** Returns a dictionary of the row results mapped to case sensitive keys of the column names.
|
||||
|
||||
@returns `NSDictionary` of the row results.
|
||||
|
||||
@warning The keys to the dictionary are case sensitive of the column names.
|
||||
*/
|
||||
|
||||
- (NSDictionary*)resultDictionary;
|
||||
@property (nonatomic, readonly, nullable) NSDictionary *resultDictionary;
|
||||
|
||||
/** Returns a dictionary of the row results
|
||||
|
||||
@@ -449,7 +447,7 @@ If you don't, you're going to be in a world of hurt when you try and use the dat
|
||||
@warning **Deprecated**: Please use `<resultDictionary>` instead. Also, beware that `<resultDictionary>` is case sensitive!
|
||||
*/
|
||||
|
||||
- (NSDictionary*)resultDict __attribute__ ((deprecated));
|
||||
- (NSDictionary * _Nullable)resultDict __deprecated_msg("Use resultDictionary instead");
|
||||
|
||||
///-----------------------------
|
||||
/// @name Key value coding magic
|
||||
@@ -466,3 +464,4 @@ If you don't, you're going to be in a world of hurt when you try and use the dat
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
46
ios/Pods/FMDB/src/fmdb/FMResultSet.m
generated
46
ios/Pods/FMDB/src/fmdb/FMResultSet.m
generated
@@ -12,10 +12,12 @@
|
||||
- (void)resultSetDidClose:(FMResultSet *)resultSet;
|
||||
@end
|
||||
|
||||
@interface FMResultSet () {
|
||||
NSMutableDictionary *_columnNameToIndexMap;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation FMResultSet
|
||||
@synthesize query=_query;
|
||||
@synthesize statement=_statement;
|
||||
|
||||
+ (instancetype)resultSetWithStatement:(FMStatement *)statement usingParentDatabase:(FMDatabase*)aDB {
|
||||
|
||||
@@ -30,10 +32,12 @@
|
||||
return FMDBReturnAutoreleased(rs);
|
||||
}
|
||||
|
||||
#if ! __has_feature(objc_arc)
|
||||
- (void)finalize {
|
||||
[self close];
|
||||
[super finalize];
|
||||
}
|
||||
#endif
|
||||
|
||||
- (void)dealloc {
|
||||
[self close];
|
||||
@@ -98,7 +102,7 @@
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-implementations"
|
||||
|
||||
- (NSDictionary*)resultDict {
|
||||
- (NSDictionary *)resultDict {
|
||||
|
||||
NSUInteger num_cols = (NSUInteger)sqlite3_data_count([_statement statement]);
|
||||
|
||||
@@ -217,7 +221,7 @@
|
||||
|
||||
NSNumber *n = [[self columnNameToIndexMap] objectForKey:columnName];
|
||||
|
||||
if (n) {
|
||||
if (n != nil) {
|
||||
return [n intValue];
|
||||
}
|
||||
|
||||
@@ -226,8 +230,6 @@
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (int)intForColumn:(NSString*)columnName {
|
||||
return [self intForColumnIndex:[self columnIndexForName:columnName]];
|
||||
}
|
||||
@@ -276,9 +278,9 @@
|
||||
return sqlite3_column_double([_statement statement], columnIdx);
|
||||
}
|
||||
|
||||
- (NSString*)stringForColumnIndex:(int)columnIdx {
|
||||
- (NSString *)stringForColumnIndex:(int)columnIdx {
|
||||
|
||||
if (sqlite3_column_type([_statement statement], columnIdx) == SQLITE_NULL || (columnIdx < 0)) {
|
||||
if (sqlite3_column_type([_statement statement], columnIdx) == SQLITE_NULL || (columnIdx < 0) || columnIdx >= sqlite3_column_count([_statement statement])) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
@@ -302,7 +304,7 @@
|
||||
|
||||
- (NSDate*)dateForColumnIndex:(int)columnIdx {
|
||||
|
||||
if (sqlite3_column_type([_statement statement], columnIdx) == SQLITE_NULL || (columnIdx < 0)) {
|
||||
if (sqlite3_column_type([_statement statement], columnIdx) == SQLITE_NULL || (columnIdx < 0) || columnIdx >= sqlite3_column_count([_statement statement])) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
@@ -316,7 +318,7 @@
|
||||
|
||||
- (NSData*)dataForColumnIndex:(int)columnIdx {
|
||||
|
||||
if (sqlite3_column_type([_statement statement], columnIdx) == SQLITE_NULL || (columnIdx < 0)) {
|
||||
if (sqlite3_column_type([_statement statement], columnIdx) == SQLITE_NULL || (columnIdx < 0) || columnIdx >= sqlite3_column_count([_statement statement])) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
@@ -337,7 +339,7 @@
|
||||
|
||||
- (NSData*)dataNoCopyForColumnIndex:(int)columnIdx {
|
||||
|
||||
if (sqlite3_column_type([_statement statement], columnIdx) == SQLITE_NULL || (columnIdx < 0)) {
|
||||
if (sqlite3_column_type([_statement statement], columnIdx) == SQLITE_NULL || (columnIdx < 0) || columnIdx >= sqlite3_column_count([_statement statement])) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
@@ -360,18 +362,26 @@
|
||||
|
||||
- (const unsigned char *)UTF8StringForColumnIndex:(int)columnIdx {
|
||||
|
||||
if (sqlite3_column_type([_statement statement], columnIdx) == SQLITE_NULL || (columnIdx < 0)) {
|
||||
if (sqlite3_column_type([_statement statement], columnIdx) == SQLITE_NULL || (columnIdx < 0) || columnIdx >= sqlite3_column_count([_statement statement])) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
return sqlite3_column_text([_statement statement], columnIdx);
|
||||
}
|
||||
|
||||
- (const unsigned char *)UTF8StringForColumnName:(NSString*)columnName {
|
||||
- (const unsigned char *)UTF8StringForColumn:(NSString*)columnName {
|
||||
return [self UTF8StringForColumnIndex:[self columnIndexForName:columnName]];
|
||||
}
|
||||
|
||||
- (const unsigned char *)UTF8StringForColumnName:(NSString*)columnName {
|
||||
return [self UTF8StringForColumn:columnName];
|
||||
}
|
||||
|
||||
- (id)objectForColumnIndex:(int)columnIdx {
|
||||
if (columnIdx < 0 || columnIdx >= sqlite3_column_count([_statement statement])) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
int columnType = sqlite3_column_type([_statement statement], columnIdx);
|
||||
|
||||
id returnValue = nil;
|
||||
@@ -398,6 +408,10 @@
|
||||
}
|
||||
|
||||
- (id)objectForColumnName:(NSString*)columnName {
|
||||
return [self objectForColumn:columnName];
|
||||
}
|
||||
|
||||
- (id)objectForColumn:(NSString*)columnName {
|
||||
return [self objectForColumnIndex:[self columnIndexForName:columnName]];
|
||||
}
|
||||
|
||||
@@ -406,16 +420,12 @@
|
||||
return [NSString stringWithUTF8String: sqlite3_column_name([_statement statement], columnIdx)];
|
||||
}
|
||||
|
||||
- (void)setParentDB:(FMDatabase *)newDb {
|
||||
_parentDB = newDb;
|
||||
}
|
||||
|
||||
- (id)objectAtIndexedSubscript:(int)columnIdx {
|
||||
return [self objectForColumnIndex:columnIdx];
|
||||
}
|
||||
|
||||
- (id)objectForKeyedSubscript:(NSString *)columnName {
|
||||
return [self objectForColumnName:columnName];
|
||||
return [self objectForColumn:columnName];
|
||||
}
|
||||
|
||||
|
||||
|
||||
2
ios/Pods/Headers/Private/sqflite/SqflitePlugin.h
generated
2
ios/Pods/Headers/Private/sqflite/SqflitePlugin.h
generated
@@ -1 +1 @@
|
||||
../../../../../../../../.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.3/ios/Classes/SqflitePlugin.h
|
||||
../../../../../../../../.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.4/ios/Classes/SqflitePlugin.h
|
||||
2
ios/Pods/Headers/Public/sqflite/SqflitePlugin.h
generated
2
ios/Pods/Headers/Public/sqflite/SqflitePlugin.h
generated
@@ -1 +1 @@
|
||||
../../../../../../../../.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.3/ios/Classes/SqflitePlugin.h
|
||||
../../../../../../../../.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.4/ios/Classes/SqflitePlugin.h
|
||||
22
ios/Pods/Manifest.lock
generated
22
ios/Pods/Manifest.lock
generated
@@ -1,8 +1,8 @@
|
||||
PODS:
|
||||
- Flutter (1.0.0)
|
||||
- FMDB (2.6.2):
|
||||
- FMDB/standard (= 2.6.2)
|
||||
- FMDB/standard (2.6.2)
|
||||
- FMDB (2.7.2):
|
||||
- FMDB/standard (= 2.7.2)
|
||||
- FMDB/standard (2.7.2)
|
||||
- path_provider (0.0.1):
|
||||
- Flutter
|
||||
- sqflite (0.0.1):
|
||||
@@ -10,24 +10,24 @@ PODS:
|
||||
- FMDB
|
||||
|
||||
DEPENDENCIES:
|
||||
- Flutter (from `/Users/ntrlab/flutter/bin/cache/artifacts/engine/ios`)
|
||||
- path_provider (from `/Users/ntrlab/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.1+1/ios`)
|
||||
- sqflite (from `/Users/ntrlab/.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.3/ios`)
|
||||
- Flutter (from `/Users/sozinov/flutter/bin/cache/artifacts/engine/ios`)
|
||||
- path_provider (from `/Users/sozinov/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.1+1/ios`)
|
||||
- sqflite (from `/Users/sozinov/.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.4/ios`)
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
Flutter:
|
||||
:path: /Users/ntrlab/flutter/bin/cache/artifacts/engine/ios
|
||||
:path: /Users/sozinov/flutter/bin/cache/artifacts/engine/ios
|
||||
path_provider:
|
||||
:path: /Users/ntrlab/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.1+1/ios
|
||||
:path: /Users/sozinov/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.1+1/ios
|
||||
sqflite:
|
||||
:path: /Users/ntrlab/.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.3/ios
|
||||
:path: /Users/sozinov/.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.4/ios
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Flutter: d674e78c937094a75ac71dd77e921e840bea3dbf
|
||||
FMDB: 854a0341b4726e53276f2a8996f06f1b80f9259a
|
||||
FMDB: 6198a90e7b6900cfc046e6bc0ef6ebb7be9236aa
|
||||
path_provider: f96fff6166a8867510d2c25fdcc346327cc4b259
|
||||
sqflite: 8e2d9fe1e7cdc95d4d537fc7eb2d23c8dc428e3c
|
||||
|
||||
PODFILE CHECKSUM: 351e02e34b831289961ec3558a535cbd2c4965d2
|
||||
|
||||
COCOAPODS: 1.2.1
|
||||
COCOAPODS: 1.3.1
|
||||
|
||||
644
ios/Pods/Pods.xcodeproj/project.pbxproj
generated
644
ios/Pods/Pods.xcodeproj/project.pbxproj
generated
@@ -7,29 +7,29 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
0275983C85B82B8AEF3C4BBEDF6F8F65 /* SqflitePlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 7878A831C3189C53F8694D4A409DF4BB /* SqflitePlugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
05A982FECA099A43B0BC98D622441FAE /* PathProviderPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = DDBE635D159A4ADB8156E4AE273C9E49 /* PathProviderPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
0A3AA45E708AEBE5491F112FF86826E6 /* FMResultSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 71B69D4A7150AC2F65A57B7D04F092D4 /* FMResultSet.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; };
|
||||
0DDFE649E817E8E428BD87DBFA928B6A /* FMResultSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 69CC8B63F837EA7B053AB8BA07253A25 /* FMResultSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
1FB202F9CC5A6B1BDF544D6331CC65E9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
|
||||
534A2178342F283B51EACFFDFFE40191 /* sqflite-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4A9FB0D0A182DC4FA1A52EEE5A781 /* sqflite-dummy.m */; };
|
||||
3CFE852DE6FED9F7DF15F9EA857128A8 /* sqflite-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE88B4ED62E7C707EC8249A71508066 /* sqflite-dummy.m */; };
|
||||
5E4CF03E66D6F8A4740E7E79DEB429BD /* FMDatabasePool.m in Sources */ = {isa = PBXBuildFile; fileRef = 400AFB42920EB39709666D3F1A73D6C2 /* FMDatabasePool.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; };
|
||||
5F3656EE3D432CA623783D4CF342F0D8 /* Pods-Runner-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1086A466F3A8C5B95BB9FFDFF3E7C0C7 /* Pods-Runner-dummy.m */; };
|
||||
6CBBBD55FA103C4CDEB6D91AF00CD1B8 /* FMDatabasePool.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF3AEDDA16DD8E28B59FF0788FDDC03 /* FMDatabasePool.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
6D16310077B5942FA3612F8E378AA5A9 /* SqflitePlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C927F583AB6D21CB119DD79372182E6 /* SqflitePlugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
6FEE3188E0CDBD416EAB4294ED8B27A5 /* SqflitePlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 56E83D19356F253A8A090F3A5EB4A1A4 /* SqflitePlugin.m */; };
|
||||
731E8A5B80ABFB6037EE3757A840E7EE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
|
||||
81DC828A0B2DBF6E914B43538C678149 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
|
||||
834E6C3CE80E3BD5FBD61DDEBF7C129E /* PathProviderPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BECC4A0389C26140813DE6C2B8210EE /* PathProviderPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
885FA5A8E4062F05235E1BB351829299 /* FMDatabaseAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BCC0EED53ED8D7C1931178E0E4269B4 /* FMDatabaseAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; };
|
||||
964F7658C2F163B024D944143BA2B366 /* FMDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = DC7C30F9E55829B027C4913D1F19D68C /* FMDatabase.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; };
|
||||
A44C9EAA45872D379216F27269E493F1 /* FMDatabaseQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 33F15B71183AD666DFC49D907F769ACF /* FMDatabaseQueue.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
CCCE6327D9EB4C3524863A4C9F40A534 /* path_provider-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B4148ABD1497F8FBFADB22835D30BAEC /* path_provider-dummy.m */; };
|
||||
DBC373403E0C92A8A2C4BC2D4614A5F2 /* FMDatabaseAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = D2DD52CB174E1DC79111C38E770F6FC8 /* FMDatabaseAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
DC2DD5729CD216714D698D25901C2214 /* FMDatabaseQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = C11A8F38580C7A7FF38ACB6A3B412884 /* FMDatabaseQueue.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; };
|
||||
F3D10137BAA618261AD8F02DC73BB810 /* path_provider-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 17ED766A5C592E8CFCC712CD174AE467 /* path_provider-dummy.m */; };
|
||||
F4B3EA658E75B0E535C3DEFE24148F0C /* FMDB.h in Headers */ = {isa = PBXBuildFile; fileRef = 91893D40185E0EFA40FC217BE44A7C0D /* FMDB.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
F6B5EEC2E3BC8722930840274D92FDC9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
|
||||
F703EABB9F02DB9BBD35F2898762FF82 /* FMDB-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D76813CB39ACC402A9EE3DC12B4E682 /* FMDB-dummy.m */; };
|
||||
F758CC216AD6D5080A98A5C906D21B8F /* SqflitePlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 64BB5E713CC04A7119E1210E71851C9D /* SqflitePlugin.m */; };
|
||||
FE229C815FB3207DEA535129B9A252ED /* FMDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 638E465E4B27490B0FB423614C3ADD11 /* FMDatabase.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
FFE88F263143BC1EEE55869071E74417 /* PathProviderPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 70FD3C19BD756442AF61E1654A40F400 /* PathProviderPlugin.m */; };
|
||||
FF24EA25EC430D10D09B5E31B6E3EB30 /* PathProviderPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 81450A0675D21CF0C5112033DDE704F3 /* PathProviderPlugin.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@@ -67,42 +67,42 @@
|
||||
003397356FD1052F1B7B632E25DB1274 /* libFMDB.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libFMDB.a; path = libFMDB.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
01FFC258241FD6531167B29D7C3AABCE /* libpath_provider.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libpath_provider.a; path = libpath_provider.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1086A466F3A8C5B95BB9FFDFF3E7C0C7 /* Pods-Runner-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Runner-dummy.m"; sourceTree = "<group>"; };
|
||||
13A430C21CC24ABE2DEBDDED39FD29B2 /* sqflite-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "sqflite-prefix.pch"; sourceTree = "<group>"; };
|
||||
17ED766A5C592E8CFCC712CD174AE467 /* path_provider-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "path_provider-dummy.m"; sourceTree = "<group>"; };
|
||||
180AB1F194E38A2A27B5CEB66C9A1F09 /* Pods-Runner-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Runner-frameworks.sh"; sourceTree = "<group>"; };
|
||||
1AF05E0413E9C6AC5B6C1DD2880EBDA4 /* path_provider.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = path_provider.xcconfig; sourceTree = "<group>"; };
|
||||
1AF3AEDDA16DD8E28B59FF0788FDDC03 /* FMDatabasePool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabasePool.h; path = src/fmdb/FMDatabasePool.h; sourceTree = "<group>"; };
|
||||
28A4A9FB0D0A182DC4FA1A52EEE5A781 /* sqflite-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "sqflite-dummy.m"; sourceTree = "<group>"; };
|
||||
2B7E82CF4D43A0225B18184B7390079D /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Flutter.framework; sourceTree = "<group>"; };
|
||||
2C927F583AB6D21CB119DD79372182E6 /* SqflitePlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SqflitePlugin.h; path = Classes/SqflitePlugin.h; sourceTree = "<group>"; };
|
||||
33F15B71183AD666DFC49D907F769ACF /* FMDatabaseQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabaseQueue.h; path = src/fmdb/FMDatabaseQueue.h; sourceTree = "<group>"; };
|
||||
3BCC0EED53ED8D7C1931178E0E4269B4 /* FMDatabaseAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabaseAdditions.m; path = src/fmdb/FMDatabaseAdditions.m; sourceTree = "<group>"; };
|
||||
3BECC4A0389C26140813DE6C2B8210EE /* PathProviderPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PathProviderPlugin.h; path = Classes/PathProviderPlugin.h; sourceTree = "<group>"; };
|
||||
3F8DCA264D4A7E7254305B946F3D73F0 /* Pods-Runner-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Runner-acknowledgements.markdown"; sourceTree = "<group>"; };
|
||||
400AFB42920EB39709666D3F1A73D6C2 /* FMDatabasePool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabasePool.m; path = src/fmdb/FMDatabasePool.m; sourceTree = "<group>"; };
|
||||
43C335658A2B46A6980F30ED63D600F9 /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Flutter.framework; sourceTree = "<group>"; };
|
||||
4532A70C1CFAB30C4266017A71B77D1F /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||
4EE88B4ED62E7C707EC8249A71508066 /* sqflite-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "sqflite-dummy.m"; sourceTree = "<group>"; };
|
||||
56E83D19356F253A8A090F3A5EB4A1A4 /* SqflitePlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SqflitePlugin.m; path = Classes/SqflitePlugin.m; sourceTree = "<group>"; };
|
||||
5C8299479CF1A66A335CD3BB7C3632ED /* Pods-Runner-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Runner-resources.sh"; sourceTree = "<group>"; };
|
||||
638E465E4B27490B0FB423614C3ADD11 /* FMDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabase.h; path = src/fmdb/FMDatabase.h; sourceTree = "<group>"; };
|
||||
64BB5E713CC04A7119E1210E71851C9D /* SqflitePlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SqflitePlugin.m; sourceTree = "<group>"; };
|
||||
6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
|
||||
69CC8B63F837EA7B053AB8BA07253A25 /* FMResultSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMResultSet.h; path = src/fmdb/FMResultSet.h; sourceTree = "<group>"; };
|
||||
6D76813CB39ACC402A9EE3DC12B4E682 /* FMDB-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FMDB-dummy.m"; sourceTree = "<group>"; };
|
||||
70FD3C19BD756442AF61E1654A40F400 /* PathProviderPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PathProviderPlugin.m; sourceTree = "<group>"; };
|
||||
71B69D4A7150AC2F65A57B7D04F092D4 /* FMResultSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMResultSet.m; path = src/fmdb/FMResultSet.m; sourceTree = "<group>"; };
|
||||
7878A831C3189C53F8694D4A409DF4BB /* SqflitePlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SqflitePlugin.h; sourceTree = "<group>"; };
|
||||
78226A7E12E0090182848D3F769FF7C9 /* sqflite.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = sqflite.xcconfig; sourceTree = "<group>"; };
|
||||
7AA1C065B2238B882B9E918A1D78F65A /* path_provider.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = path_provider.xcconfig; sourceTree = "<group>"; };
|
||||
81450A0675D21CF0C5112033DDE704F3 /* PathProviderPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PathProviderPlugin.m; path = Classes/PathProviderPlugin.m; sourceTree = "<group>"; };
|
||||
859495150A1CA9A06BB797FA29E850C3 /* Pods-Runner-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Runner-acknowledgements.plist"; sourceTree = "<group>"; };
|
||||
91893D40185E0EFA40FC217BE44A7C0D /* FMDB.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDB.h; path = src/fmdb/FMDB.h; sourceTree = "<group>"; };
|
||||
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
|
||||
9A5598D552F6A211F42187AC266E1656 /* sqflite.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = sqflite.xcconfig; sourceTree = "<group>"; };
|
||||
A1448204AE8E2DC37C8C36438BED7AD8 /* FMDB-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FMDB-prefix.pch"; sourceTree = "<group>"; };
|
||||
A47118E0497C287385E5E40F74B45592 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Runner.a"; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
A52E6E664A33D0ADBF28C096726C8FAA /* libsqflite.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libsqflite.a; path = libsqflite.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
B2AC8D08AB9E95E701EC049C53414AEB /* FMDB.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FMDB.xcconfig; sourceTree = "<group>"; };
|
||||
B4148ABD1497F8FBFADB22835D30BAEC /* path_provider-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "path_provider-dummy.m"; sourceTree = "<group>"; };
|
||||
BE773F7EB56E5F717FFB6CFECB651D18 /* sqflite-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "sqflite-prefix.pch"; sourceTree = "<group>"; };
|
||||
C01D2261DFAB70EC8E5F1A1385D6F66E /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
C11A8F38580C7A7FF38ACB6A3B412884 /* FMDatabaseQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabaseQueue.m; path = src/fmdb/FMDatabaseQueue.m; sourceTree = "<group>"; };
|
||||
CAA729AA4202C0AC1EA594504353C960 /* Pods-Runner.debug-develop.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.debug-develop.xcconfig"; sourceTree = "<group>"; };
|
||||
D2DD52CB174E1DC79111C38E770F6FC8 /* FMDatabaseAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabaseAdditions.h; path = src/fmdb/FMDatabaseAdditions.h; sourceTree = "<group>"; };
|
||||
DC7C30F9E55829B027C4913D1F19D68C /* FMDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabase.m; path = src/fmdb/FMDatabase.m; sourceTree = "<group>"; };
|
||||
DDBE635D159A4ADB8156E4AE273C9E49 /* PathProviderPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PathProviderPlugin.h; sourceTree = "<group>"; };
|
||||
ECBCF167324FE2871ECD876F3BFEE33B /* path_provider-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "path_provider-prefix.pch"; sourceTree = "<group>"; };
|
||||
F360BB1601C159E7F0A615F1C5EC8564 /* path_provider-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "path_provider-prefix.pch"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -141,27 +141,6 @@
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
0F75ACD176A5C14BA253876A7AA1E6A1 /* Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1AF05E0413E9C6AC5B6C1DD2880EBDA4 /* path_provider.xcconfig */,
|
||||
B4148ABD1497F8FBFADB22835D30BAEC /* path_provider-dummy.m */,
|
||||
ECBCF167324FE2871ECD876F3BFEE33B /* path_provider-prefix.pch */,
|
||||
);
|
||||
name = "Support Files";
|
||||
path = "../../../../../semyon/apps/checker/ios/Pods/Target Support Files/path_provider";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1527F55CD5CF674DE5785233431F1E88 /* sqflite */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E3783720A5A4431435F84DC6CF63F5E3 /* Classes */,
|
||||
81AA7BCFF76E0AFC6AD99A5FE45D0E3B /* Support Files */,
|
||||
);
|
||||
name = sqflite;
|
||||
path = "/Users/ntrlab/.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.3/ios";
|
||||
sourceTree = "<absolute>";
|
||||
};
|
||||
1A3BC54721BAA16B749DAA153DA8F5A5 /* Targets Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -186,14 +165,12 @@
|
||||
path = "Target Support Files/Pods-Runner";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
205E88D3BF9AE11F31224C922CE6E6FE /* Classes */ = {
|
||||
4E41A81923F4DF71485AFEA308BDA8CE /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DDBE635D159A4ADB8156E4AE273C9E49 /* PathProviderPlugin.h */,
|
||||
70FD3C19BD756442AF61E1654A40F400 /* PathProviderPlugin.m */,
|
||||
43C335658A2B46A6980F30ED63D600F9 /* Flutter.framework */,
|
||||
);
|
||||
name = Classes;
|
||||
path = Classes;
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
64A6B117D4CD0E751BFC131087154F68 /* Products */ = {
|
||||
@@ -218,11 +195,31 @@
|
||||
path = "../Target Support Files/FMDB";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AA8AF79708D14C790026D8AFE120B54 /* sqflite */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2C927F583AB6D21CB119DD79372182E6 /* SqflitePlugin.h */,
|
||||
56E83D19356F253A8A090F3A5EB4A1A4 /* SqflitePlugin.m */,
|
||||
96A9910D7FCB6C803EB0532C5AD30F0A /* Support Files */,
|
||||
);
|
||||
name = sqflite;
|
||||
path = "/Users/sozinov/.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.4/ios";
|
||||
sourceTree = "<absolute>";
|
||||
};
|
||||
6D95707A54888CCDE44B6A9A23C999F0 /* Flutter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4E41A81923F4DF71485AFEA308BDA8CE /* Frameworks */,
|
||||
);
|
||||
name = Flutter;
|
||||
path = /Users/sozinov/flutter/bin/cache/artifacts/engine/ios;
|
||||
sourceTree = "<absolute>";
|
||||
};
|
||||
7DB346D0F39D3F0E887471402A8071AB = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
|
||||
E61F637D2F764F469A104B09B992D3B6 /* Development Pods */,
|
||||
FF4061DE8A3B22F412830AD1490C30B5 /* Development Pods */,
|
||||
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */,
|
||||
BFB8C92E749ED180124155E2270474D2 /* Pods */,
|
||||
64A6B117D4CD0E751BFC131087154F68 /* Products */,
|
||||
@@ -230,34 +227,26 @@
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
81AA7BCFF76E0AFC6AD99A5FE45D0E3B /* Support Files */ = {
|
||||
96A9910D7FCB6C803EB0532C5AD30F0A /* Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9A5598D552F6A211F42187AC266E1656 /* sqflite.xcconfig */,
|
||||
28A4A9FB0D0A182DC4FA1A52EEE5A781 /* sqflite-dummy.m */,
|
||||
13A430C21CC24ABE2DEBDDED39FD29B2 /* sqflite-prefix.pch */,
|
||||
78226A7E12E0090182848D3F769FF7C9 /* sqflite.xcconfig */,
|
||||
4EE88B4ED62E7C707EC8249A71508066 /* sqflite-dummy.m */,
|
||||
BE773F7EB56E5F717FFB6CFECB651D18 /* sqflite-prefix.pch */,
|
||||
);
|
||||
name = "Support Files";
|
||||
path = "../../../../../semyon/apps/checker/ios/Pods/Target Support Files/sqflite";
|
||||
path = "../../../../../Developer/checker/checker/ios/Pods/Target Support Files/sqflite";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8D4F39B5D75336FD53220C2A6DB6F817 /* Flutter */ = {
|
||||
A7851D2B787DDC71C43873697BFAEEDD /* path_provider */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CEA36AAEB26C47C0117B673CBF9DB8A0 /* Frameworks */,
|
||||
);
|
||||
name = Flutter;
|
||||
path = /Users/ntrlab/flutter/bin/cache/artifacts/engine/ios;
|
||||
sourceTree = "<absolute>";
|
||||
};
|
||||
A18E6292477D80E1AA5C937D7B1562C1 /* path_provider */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
205E88D3BF9AE11F31224C922CE6E6FE /* Classes */,
|
||||
0F75ACD176A5C14BA253876A7AA1E6A1 /* Support Files */,
|
||||
3BECC4A0389C26140813DE6C2B8210EE /* PathProviderPlugin.h */,
|
||||
81450A0675D21CF0C5112033DDE704F3 /* PathProviderPlugin.m */,
|
||||
BD0A46A0EE0A36277E05C01B1F269664 /* Support Files */,
|
||||
);
|
||||
name = path_provider;
|
||||
path = "/Users/ntrlab/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.1+1/ios";
|
||||
path = "/Users/sozinov/.pub-cache/hosted/pub.dartlang.org/path_provider-0.2.1+1/ios";
|
||||
sourceTree = "<absolute>";
|
||||
};
|
||||
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
|
||||
@@ -268,6 +257,17 @@
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
BD0A46A0EE0A36277E05C01B1F269664 /* Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7AA1C065B2238B882B9E918A1D78F65A /* path_provider.xcconfig */,
|
||||
17ED766A5C592E8CFCC712CD174AE467 /* path_provider-dummy.m */,
|
||||
F360BB1601C159E7F0A615F1C5EC8564 /* path_provider-prefix.pch */,
|
||||
);
|
||||
name = "Support Files";
|
||||
path = "../../../../../Developer/checker/checker/ios/Pods/Target Support Files/path_provider";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
BFB8C92E749ED180124155E2270474D2 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -294,14 +294,6 @@
|
||||
name = standard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CEA36AAEB26C47C0117B673CBF9DB8A0 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2B7E82CF4D43A0225B18184B7390079D /* Flutter.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D35AF013A5F0BAD4F32504907A52519E /* iOS */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -320,22 +312,12 @@
|
||||
path = FMDB;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E3783720A5A4431435F84DC6CF63F5E3 /* Classes */ = {
|
||||
FF4061DE8A3B22F412830AD1490C30B5 /* Development Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7878A831C3189C53F8694D4A409DF4BB /* SqflitePlugin.h */,
|
||||
64BB5E713CC04A7119E1210E71851C9D /* SqflitePlugin.m */,
|
||||
);
|
||||
name = Classes;
|
||||
path = Classes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E61F637D2F764F469A104B09B992D3B6 /* Development Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D4F39B5D75336FD53220C2A6DB6F817 /* Flutter */,
|
||||
A18E6292477D80E1AA5C937D7B1562C1 /* path_provider */,
|
||||
1527F55CD5CF674DE5785233431F1E88 /* sqflite */,
|
||||
6D95707A54888CCDE44B6A9A23C999F0 /* Flutter */,
|
||||
A7851D2B787DDC71C43873697BFAEEDD /* path_provider */,
|
||||
6AA8AF79708D14C790026D8AFE120B54 /* sqflite */,
|
||||
);
|
||||
name = "Development Pods";
|
||||
sourceTree = "<group>";
|
||||
@@ -343,19 +325,19 @@
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
6D5F5A8571DEBE7AC0FE0D3455AFBA46 /* Headers */ = {
|
||||
4E142C8D5F5A788FABFA3BF63E227974 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
05A982FECA099A43B0BC98D622441FAE /* PathProviderPlugin.h in Headers */,
|
||||
834E6C3CE80E3BD5FBD61DDEBF7C129E /* PathProviderPlugin.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
9E575053C725E72B7BAB34F8DAFC6ED9 /* Headers */ = {
|
||||
6E49CE0548C34B7B24EE1DCFA1ED7E11 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
0275983C85B82B8AEF3C4BBEDF6F8F65 /* SqflitePlugin.h in Headers */,
|
||||
6D16310077B5942FA3612F8E378AA5A9 /* SqflitePlugin.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -415,9 +397,9 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D683C7800E224AA1BCE1A5D1014095AA /* Build configuration list for PBXNativeTarget "sqflite" */;
|
||||
buildPhases = (
|
||||
070684A2243BD9D4CF0E21C7015C4C49 /* Sources */,
|
||||
A9C4A271CD4E9EBFD62DC3FA317C4376 /* Sources */,
|
||||
E77DFBE401E6EB8D3FDB709749F7756D /* Frameworks */,
|
||||
9E575053C725E72B7BAB34F8DAFC6ED9 /* Headers */,
|
||||
6E49CE0548C34B7B24EE1DCFA1ED7E11 /* Headers */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -433,9 +415,9 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 20E959984CF6E2A34CFF08E1335F922A /* Build configuration list for PBXNativeTarget "path_provider" */;
|
||||
buildPhases = (
|
||||
FC0496B502691C4870045CFBB8579F55 /* Sources */,
|
||||
5FBC105E0D7DFE08F2C0A6DAE2280768 /* Sources */,
|
||||
C8ECFE49FBB48866AF20945FA64C3E9A /* Frameworks */,
|
||||
6D5F5A8571DEBE7AC0FE0D3455AFBA46 /* Headers */,
|
||||
4E142C8D5F5A788FABFA3BF63E227974 /* Headers */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -476,12 +458,12 @@
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
070684A2243BD9D4CF0E21C7015C4C49 /* Sources */ = {
|
||||
5FBC105E0D7DFE08F2C0A6DAE2280768 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
534A2178342F283B51EACFFDFFE40191 /* sqflite-dummy.m in Sources */,
|
||||
F758CC216AD6D5080A98A5C906D21B8F /* SqflitePlugin.m in Sources */,
|
||||
F3D10137BAA618261AD8F02DC73BB810 /* path_provider-dummy.m in Sources */,
|
||||
FF24EA25EC430D10D09B5E31B6E3EB30 /* PathProviderPlugin.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -498,6 +480,15 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
A9C4A271CD4E9EBFD62DC3FA317C4376 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
3CFE852DE6FED9F7DF15F9EA857128A8 /* sqflite-dummy.m in Sources */,
|
||||
6FEE3188E0CDBD416EAB4294ED8B27A5 /* SqflitePlugin.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
D88643062B7602B884A23652394EF04D /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -506,15 +497,6 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
FC0496B502691C4870045CFBB8579F55 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CCCE6327D9EB4C3524863A4C9F40A534 /* path_provider-dummy.m in Sources */,
|
||||
FFE88F263143BC1EEE55869071E74417 /* PathProviderPlugin.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
@@ -545,67 +527,54 @@
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
07D867E55B5AB8B7870C1E6A33FEBBBB /* Release */ = {
|
||||
1C7D17A37D091C98D2F0DD886C3A9320 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = B2AC8D08AB9E95E701EC049C53414AEB /* FMDB.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
arm64,
|
||||
arm7s,
|
||||
armv7,
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGNING_REQUIRED = NO;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"POD_CONFIGURATION_DEBUG=1",
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/FMDB/FMDB-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
19A0575138638B2F05A2B2FD69B99D6D /* Debug-develop */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 1AF05E0413E9C6AC5B6C1DD2880EBDA4 /* path_provider.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
arm64,
|
||||
arm7s,
|
||||
armv7,
|
||||
);
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/path_provider/path_provider-prefix.pch";
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 3.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SYMROOT = "${SRCROOT}/../build";
|
||||
};
|
||||
name = "Debug-develop";
|
||||
name = Debug;
|
||||
};
|
||||
34FE9531DA9AF2820790339988D5FF41 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
@@ -681,9 +650,9 @@
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
370B7DE297A709920A0BB2EBD76A76E3 /* Release */ = {
|
||||
4B05161798033C529E36DA866EA23FC7 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 1AF05E0413E9C6AC5B6C1DD2880EBDA4 /* path_provider.xcconfig */;
|
||||
baseConfigurationReference = 7AA1C065B2238B882B9E918A1D78F65A /* path_provider.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
@@ -694,13 +663,13 @@
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/path_provider/path_provider-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
@@ -708,42 +677,12 @@
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Release;
|
||||
name = Debug;
|
||||
};
|
||||
7173E8A291934D86B87B7C8172E6600D /* Debug-develop */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = B2AC8D08AB9E95E701EC049C53414AEB /* FMDB.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
arm64,
|
||||
arm7s,
|
||||
armv7,
|
||||
);
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/FMDB/FMDB-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = "Debug-develop";
|
||||
};
|
||||
8C006BAAA9098B2F3F3C6EF9B1943E46 /* Debug */ = {
|
||||
85F8B1923EC4E7B2870FEF674AB9559D /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = B2AC8D08AB9E95E701EC049C53414AEB /* FMDB.xcconfig */;
|
||||
buildSettings = {
|
||||
@@ -770,6 +709,39 @@
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
8A1DDB651D50EE0BD3BD1121C16538DB /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 78226A7E12E0090182848D3F769FF7C9 /* sqflite.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
arm64,
|
||||
arm7s,
|
||||
armv7,
|
||||
);
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/sqflite/sqflite-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Debug;
|
||||
@@ -834,57 +806,9 @@
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
C104F7F091290C3D1E248192F07FE689 /* Debug */ = {
|
||||
B04F6282658434816C07524D1FBCDA6C /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGNING_REQUIRED = NO;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"POD_CONFIGURATION_DEBUG=1",
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
SYMROOT = "${SRCROOT}/../build";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
C1D46DF380F875E0EE98CD16DDD762FB /* Debug-develop */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 9A5598D552F6A211F42187AC266E1656 /* sqflite.xcconfig */;
|
||||
baseConfigurationReference = 7AA1C065B2238B882B9E918A1D78F65A /* path_provider.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
@@ -899,71 +823,9 @@
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/sqflite/sqflite-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = "Debug-develop";
|
||||
};
|
||||
F79D889AB2DE4197969513B633117EA2 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 9A5598D552F6A211F42187AC266E1656 /* sqflite.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
arm64,
|
||||
arm7s,
|
||||
armv7,
|
||||
);
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/sqflite/sqflite-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
F93F83D9876E7DC43B24692C6B5E2309 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 1AF05E0413E9C6AC5B6C1DD2880EBDA4 /* path_provider.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
arm64,
|
||||
arm7s,
|
||||
armv7,
|
||||
);
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/path_provider/path_provider-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
@@ -971,13 +833,14 @@
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Debug;
|
||||
name = Release;
|
||||
};
|
||||
FC09EFEE9A0D51D6A5402A3F2103CBA8 /* Debug */ = {
|
||||
B5478079A23AB117F753262D377E38FD /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 9A5598D552F6A211F42187AC266E1656 /* sqflite.xcconfig */;
|
||||
baseConfigurationReference = 78226A7E12E0090182848D3F769FF7C9 /* sqflite.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
@@ -988,13 +851,13 @@
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/sqflite/sqflite-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
@@ -1002,9 +865,138 @@
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Debug;
|
||||
name = Release;
|
||||
};
|
||||
BFD5123607DC71A2F305600F33AC1A7D /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = B2AC8D08AB9E95E701EC049C53414AEB /* FMDB.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
arm64,
|
||||
arm7s,
|
||||
armv7,
|
||||
);
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/FMDB/FMDB-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
CE4B22519341CB965EF07EDA1B1B4AF7 /* Debug-develop */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 7AA1C065B2238B882B9E918A1D78F65A /* path_provider.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
arm64,
|
||||
arm7s,
|
||||
armv7,
|
||||
);
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/path_provider/path_provider-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = "Debug-develop";
|
||||
};
|
||||
E6C9610B172770DF23362508531AA383 /* Debug-develop */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = B2AC8D08AB9E95E701EC049C53414AEB /* FMDB.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
arm64,
|
||||
arm7s,
|
||||
armv7,
|
||||
);
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/FMDB/FMDB-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = "Debug-develop";
|
||||
};
|
||||
F0E33964E3D527293293732CFA6CFF7A /* Debug-develop */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 78226A7E12E0090182848D3F769FF7C9 /* sqflite.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
"$(ARCHS_STANDARD)",
|
||||
arm64,
|
||||
arm7s,
|
||||
armv7,
|
||||
);
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/sqflite/sqflite-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = "Debug-develop";
|
||||
};
|
||||
FE87B77707AE47DF6E63C7626B38A635 /* Debug-develop */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
@@ -1055,9 +1047,9 @@
|
||||
20E959984CF6E2A34CFF08E1335F922A /* Build configuration list for PBXNativeTarget "path_provider" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
F93F83D9876E7DC43B24692C6B5E2309 /* Debug */,
|
||||
19A0575138638B2F05A2B2FD69B99D6D /* Debug-develop */,
|
||||
370B7DE297A709920A0BB2EBD76A76E3 /* Release */,
|
||||
4B05161798033C529E36DA866EA23FC7 /* Debug */,
|
||||
CE4B22519341CB965EF07EDA1B1B4AF7 /* Debug-develop */,
|
||||
B04F6282658434816C07524D1FBCDA6C /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
@@ -1075,7 +1067,7 @@
|
||||
2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
C104F7F091290C3D1E248192F07FE689 /* Debug */,
|
||||
1C7D17A37D091C98D2F0DD886C3A9320 /* Debug */,
|
||||
FE87B77707AE47DF6E63C7626B38A635 /* Debug-develop */,
|
||||
34FE9531DA9AF2820790339988D5FF41 /* Release */,
|
||||
);
|
||||
@@ -1085,9 +1077,9 @@
|
||||
7BB2C93DA9F2A87B6FBF78336D22F4E2 /* Build configuration list for PBXNativeTarget "FMDB" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
8C006BAAA9098B2F3F3C6EF9B1943E46 /* Debug */,
|
||||
7173E8A291934D86B87B7C8172E6600D /* Debug-develop */,
|
||||
07D867E55B5AB8B7870C1E6A33FEBBBB /* Release */,
|
||||
85F8B1923EC4E7B2870FEF674AB9559D /* Debug */,
|
||||
E6C9610B172770DF23362508531AA383 /* Debug-develop */,
|
||||
BFD5123607DC71A2F305600F33AC1A7D /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
@@ -1095,9 +1087,9 @@
|
||||
D683C7800E224AA1BCE1A5D1014095AA /* Build configuration list for PBXNativeTarget "sqflite" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
FC09EFEE9A0D51D6A5402A3F2103CBA8 /* Debug */,
|
||||
C1D46DF380F875E0EE98CD16DDD762FB /* Debug-develop */,
|
||||
F79D889AB2DE4197969513B633117EA2 /* Release */,
|
||||
8A1DDB651D50EE0BD3BD1121C16538DB /* Debug */,
|
||||
F0E33964E3D527293293732CFA6CFF7A /* Debug-develop */,
|
||||
B5478079A23AB117F753262D377E38FD /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
|
||||
60
ios/Pods/Pods.xcodeproj/xcuserdata/sozinov_work.xcuserdatad/xcschemes/FMDB.xcscheme
generated
Normal file
60
ios/Pods/Pods.xcodeproj/xcuserdata/sozinov_work.xcuserdatad/xcschemes/FMDB.xcscheme
generated
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0700"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = 'primary'
|
||||
BlueprintIdentifier = '1749C1BD4B48236EAC7E2B8B03365028'
|
||||
BlueprintName = 'FMDB'
|
||||
ReferencedContainer = 'container:Pods.xcodeproj'
|
||||
BuildableName = 'libFMDB.a'>
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
60
ios/Pods/Pods.xcodeproj/xcuserdata/sozinov_work.xcuserdatad/xcschemes/Pods-Runner.xcscheme
generated
Normal file
60
ios/Pods/Pods.xcodeproj/xcuserdata/sozinov_work.xcuserdatad/xcschemes/Pods-Runner.xcscheme
generated
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0700"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = 'primary'
|
||||
BlueprintIdentifier = '4359B870C8D9828950479A4FB3819805'
|
||||
BlueprintName = 'Pods-Runner'
|
||||
ReferencedContainer = 'container:Pods.xcodeproj'
|
||||
BuildableName = 'libPods-Runner.a'>
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
60
ios/Pods/Pods.xcodeproj/xcuserdata/sozinov_work.xcuserdatad/xcschemes/path_provider.xcscheme
generated
Normal file
60
ios/Pods/Pods.xcodeproj/xcuserdata/sozinov_work.xcuserdatad/xcschemes/path_provider.xcscheme
generated
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0700"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = 'primary'
|
||||
BlueprintIdentifier = 'D597B65EAF1279E7C5637291B916DDC5'
|
||||
BlueprintName = 'path_provider'
|
||||
ReferencedContainer = 'container:Pods.xcodeproj'
|
||||
BuildableName = 'libpath_provider.a'>
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
60
ios/Pods/Pods.xcodeproj/xcuserdata/sozinov_work.xcuserdatad/xcschemes/sqflite.xcscheme
generated
Normal file
60
ios/Pods/Pods.xcodeproj/xcuserdata/sozinov_work.xcuserdatad/xcschemes/sqflite.xcscheme
generated
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0700"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = 'primary'
|
||||
BlueprintIdentifier = '8944BF05BFD79D97D838CC043D5F737A'
|
||||
BlueprintName = 'sqflite'
|
||||
ReferencedContainer = 'container:Pods.xcodeproj'
|
||||
BuildableName = 'libsqflite.a'>
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
31
ios/Pods/Pods.xcodeproj/xcuserdata/sozinov_work.xcuserdatad/xcschemes/xcschememanagement.plist
generated
Normal file
31
ios/Pods/Pods.xcodeproj/xcuserdata/sozinov_work.xcuserdatad/xcschemes/xcschememanagement.plist
generated
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>FMDB.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Pods-Runner.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>path_provider.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>sqflite.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -6,6 +6,10 @@ mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
|
||||
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
|
||||
|
||||
# This protects against multiple targets copying the same framework dependency at the same time. The solution
|
||||
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
|
||||
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
|
||||
|
||||
install_framework()
|
||||
{
|
||||
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
|
||||
@@ -23,9 +27,9 @@ install_framework()
|
||||
source="$(readlink "${source}")"
|
||||
fi
|
||||
|
||||
# use filter instead of exclude so missing patterns dont' throw errors
|
||||
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
|
||||
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
|
||||
# Use filter instead of exclude so missing patterns don't throw errors.
|
||||
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
|
||||
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
|
||||
|
||||
local basename
|
||||
basename="$(basename -s .framework "$1")"
|
||||
@@ -54,6 +58,15 @@ install_framework()
|
||||
fi
|
||||
}
|
||||
|
||||
# Copies the dSYM of a vendored framework
|
||||
install_dsym() {
|
||||
local source="$1"
|
||||
if [ -r "$source" ]; then
|
||||
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DWARF_DSYM_FOLDER_PATH}\""
|
||||
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DWARF_DSYM_FOLDER_PATH}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Signs a framework with the provided identity
|
||||
code_sign_if_enabled() {
|
||||
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
|
||||
@@ -76,7 +89,7 @@ strip_invalid_archs() {
|
||||
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
|
||||
stripped=""
|
||||
for arch in $archs; do
|
||||
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
|
||||
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
|
||||
# Strip non-valid architectures in-place
|
||||
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
|
||||
stripped="$stripped $arch"
|
||||
|
||||
@@ -8,6 +8,10 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
|
||||
|
||||
XCASSET_FILES=()
|
||||
|
||||
# This protects against multiple targets copying the same framework dependency at the same time. The solution
|
||||
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
|
||||
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
|
||||
|
||||
case "${TARGETED_DEVICE_FAMILY}" in
|
||||
1,2)
|
||||
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
|
||||
@@ -44,29 +48,29 @@ EOM
|
||||
fi
|
||||
case $RESOURCE_PATH in
|
||||
*.storyboard)
|
||||
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
|
||||
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
|
||||
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
|
||||
;;
|
||||
*.xib)
|
||||
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
|
||||
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
|
||||
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
|
||||
;;
|
||||
*.framework)
|
||||
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
|
||||
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
|
||||
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
;;
|
||||
*.xcdatamodel)
|
||||
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
|
||||
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
|
||||
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
|
||||
;;
|
||||
*.xcdatamodeld)
|
||||
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
|
||||
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
|
||||
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
|
||||
;;
|
||||
*.xcmappingmodel)
|
||||
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
|
||||
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
|
||||
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
|
||||
;;
|
||||
*.xcassets)
|
||||
@@ -74,7 +78,7 @@ EOM
|
||||
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
|
||||
;;
|
||||
*)
|
||||
echo "$RESOURCE_PATH"
|
||||
echo "$RESOURCE_PATH" || true
|
||||
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -5,6 +5,6 @@ LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/FMDB"
|
||||
PODS_BUILD_DIR = $BUILD_DIR
|
||||
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../../../.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.3/ios
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../../../.pub-cache/hosted/pub.dartlang.org/sqflite-0.2.4/ios
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
|
||||
@@ -284,7 +284,7 @@
|
||||
TargetAttributes = {
|
||||
97C146ED1CF9000F007C117D = {
|
||||
CreatedOnToolsVersion = 7.3.1;
|
||||
DevelopmentTeam = DZRQLG966A;
|
||||
DevelopmentTeam = XU4S344HDL;
|
||||
LastSwiftMigration = 0830;
|
||||
};
|
||||
};
|
||||
@@ -360,13 +360,16 @@
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
889CEA9B47E2F8AFF76F6433 /* [CP] Embed Pods Frameworks */ = {
|
||||
@@ -375,9 +378,12 @@
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
|
||||
"${PODS_ROOT}/../../../../../flutter/bin/cache/artifacts/engine/ios/Flutter.framework",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
@@ -537,7 +543,7 @@
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = DZRQLG966A;
|
||||
DEVELOPMENT_TEAM = XU4S344HDL;
|
||||
ENABLE_BITCODE = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@@ -572,7 +578,7 @@
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = DZRQLG966A;
|
||||
DEVELOPMENT_TEAM = XU4S344HDL;
|
||||
ENABLE_BITCODE = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@@ -654,7 +660,7 @@
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = DZRQLG966A;
|
||||
DEVELOPMENT_TEAM = XU4S344HDL;
|
||||
ENABLE_BITCODE = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>Runner.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
ios/Runner.xcworkspace/xcuserdata/sozinov_work.xcuserdatad/UserInterfaceState.xcuserstate
generated
Normal file
BIN
ios/Runner.xcworkspace/xcuserdata/sozinov_work.xcuserdatad/UserInterfaceState.xcuserstate
generated
Normal file
Binary file not shown.
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Bucket
|
||||
type = "0"
|
||||
version = "2.0">
|
||||
</Bucket>
|
||||
@@ -18,24 +18,107 @@ extension ZBarSymbolSet: Sequence {
|
||||
}
|
||||
}
|
||||
|
||||
@objc class ScannerViewController: UIViewController, ZBarReaderDelegate {
|
||||
@objc class ScannerViewController: UIViewController, ZBarReaderDelegate, UITextFieldDelegate {
|
||||
var platformChannel: FlutterMethodChannel?
|
||||
let readerViewController = ZBarReaderViewController()
|
||||
|
||||
//Вьюшка для верхнего меню
|
||||
let topView = UIView()
|
||||
|
||||
//Окно ввода кода
|
||||
let textField = UITextField()
|
||||
|
||||
//Кнопка настроек
|
||||
var settingButton: UIButton!
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
readerViewController.readerDelegate = self
|
||||
readerViewController.readerView.zoom = 1.0
|
||||
readerViewController.showsZBarControls = false
|
||||
|
||||
settingButton = UIButton(type: .system)
|
||||
settingButton.addTarget(self, action: #selector(ScannerViewController.buttonTouch), for: .touchUpInside)
|
||||
|
||||
self.addChildViewController(readerViewController)
|
||||
self.view.addSubview(readerViewController.view)
|
||||
|
||||
readerViewController.view.addSubview(topView)
|
||||
topView.addSubview(textField)
|
||||
topView.addSubview(settingButton)
|
||||
|
||||
textField.delegate = self
|
||||
textField.keyboardType = .numberPad
|
||||
|
||||
//Looks for single or multiple taps.
|
||||
let tap = UITapGestureRecognizer(target: self, action: #selector(ScannerViewController.hideKeyboard))
|
||||
readerViewController.view.addGestureRecognizer(tap)
|
||||
|
||||
}
|
||||
|
||||
func hideKeyboard() {
|
||||
view.endEditing(false)
|
||||
}
|
||||
|
||||
func buttonTouch(){
|
||||
|
||||
sendResult(textField.text!)
|
||||
|
||||
}
|
||||
|
||||
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
||||
|
||||
sendResult(textField.text!)
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func sendResult(_ str: String) {
|
||||
platformChannel?.invokeMethod("findUserAndPurchase", arguments: [str], result: { (result: Any?) in
|
||||
if result is FlutterError {
|
||||
self.showErrorAlert()
|
||||
} else {
|
||||
self.presentingViewController?.dismiss(animated: false, completion: { self.dismiss(animated: true) })
|
||||
}
|
||||
print("result: \(result.debugDescription )")
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
func showErrorAlert() {
|
||||
let alertController = UIAlertController(title: "Error", message:
|
||||
"Wrong code", preferredStyle: UIAlertControllerStyle.alert)
|
||||
alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.default,handler: nil))
|
||||
|
||||
self.present(alertController, animated: true, completion: nil)
|
||||
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
|
||||
topView.backgroundColor = UIColor.white
|
||||
settingButton.setTitle("+", for: .normal)
|
||||
textField.placeholder = "Enter code"
|
||||
textField.borderStyle = .roundedRect
|
||||
|
||||
//self.present(readerViewController, animated: true)
|
||||
|
||||
super.viewWillAppear(animated)
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
let readerViewController = ZBarReaderViewController()
|
||||
readerViewController.readerDelegate = self
|
||||
readerViewController.readerView.zoom = 1.0
|
||||
readerViewController.showsZBarControls = true
|
||||
self.present(readerViewController, animated: true)
|
||||
}
|
||||
|
||||
override func viewWillLayoutSubviews() {
|
||||
|
||||
readerViewController.view.frame = view.bounds
|
||||
topView.frame = CGRect(x: 0, y: 0, width: readerViewController.view.frame.size.width, height: 40)
|
||||
textField.frame = CGRect(x: 8, y: 5, width: readerViewController.view.frame.size.width - 50, height: 30)
|
||||
settingButton.frame = CGRect(x: textField.frame.maxX + 8, y: 10, width: 20, height: 20)
|
||||
|
||||
}
|
||||
|
||||
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
|
||||
guard let symbols = info[ZBarReaderControllerResults] as? ZBarSymbolSet else { return }
|
||||
@@ -43,30 +126,36 @@ extension ZBarSymbolSet: Sequence {
|
||||
for symbol in symbols {
|
||||
|
||||
if let symbol = symbol as? ZBarSymbol, let data = symbol.data {
|
||||
|
||||
sendResult(data)
|
||||
/*
|
||||
if let platformChannel = self.platformChannel {
|
||||
self.dismiss(animated: true, completion: {
|
||||
self.presentingViewController?.dismiss(animated: true, completion: {
|
||||
// self.dismiss(animated: true, completion: {
|
||||
// self.presentingViewController?.dismiss(animated: true, completion: {
|
||||
platformChannel.invokeMethod("findUserAndPurchase", arguments: [data], result: { (result: Any?) in
|
||||
print("\(result ?? "")")
|
||||
})
|
||||
})
|
||||
|
||||
print("result: \(result ?? "")")
|
||||
self.presentingViewController?.dismiss(animated: false, completion: { self.dismiss(animated: true) })
|
||||
})
|
||||
// })
|
||||
// })
|
||||
// let result = platformChannel.invokeMethod("getUserByCode", arguments: [data], handleResult(result: FlutterResult))
|
||||
// print(result);
|
||||
}
|
||||
|
||||
// let toast = UIAlertView()
|
||||
// toast.message = data
|
||||
// toast.show()
|
||||
|
||||
navigationController?.popViewController(animated: true)
|
||||
/*
|
||||
let toast = UIAlertController()
|
||||
toast.message = data
|
||||
toast.add
|
||||
toast.show()
|
||||
*/
|
||||
//navigationController?.popViewController(animated: true)
|
||||
*/
|
||||
}
|
||||
}
|
||||
navigationController?.popViewController(animated: true)
|
||||
//navigationController?.popViewController(animated: true)
|
||||
|
||||
}
|
||||
|
||||
|
||||
override func didReceiveMemoryWarning() {
|
||||
super.didReceiveMemoryWarning()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user