Comments (7)
Hello @mtissington
There are two ways to use the inDatabase method:
// Without any return value
dbQueue.inDatabase { db in
// do some stuff
}
// With a return value
let value = dbQueue.inDatabase { db in
return ... // return some stuff
}
In your case, you return a value, but don't use it outside: the poor Swift compiler infers that the inDatabase call should both have a value (returned from inside), and have no value (since nothing is consumed), and collapses. I tend to think it's a Swift bug.
The fix is not to return anything, or to use the returned value.
Since you're the second person who asks that question, I think I should at least update the FAQ ;-)
from grdb.swift.
@mtissington, I've just been bitten in an unexpected way myself. Sometimes you also have to explicitly declare the type of the returned value:
// Variant 1
let value: MyType = dbQueue.inDatabase { db in
return ...
}
// Variant 2
let value = dbQueue.inDatabase { db -> MyType in
return ...
}
I have to do something about this: I reopen this issue.
from grdb.swift.
as an fyi i like how you have packaged this all up, for the most part it works quick and is easy to us. thanks!
from grdb.swift.
@mtissington That's the best thing a library writer can read 😄 Happy GRDB!
from grdb.swift.
Little update: the problem is still there in Swift 3, and I could not find any workaround. At least I have enough matter for a bug report on http://bugs.swift.org.
from grdb.swift.
Swift issue created: https://bugs.swift.org/browse/SR-1570
from grdb.swift.
@mtissington I close this issue: there's nothing I can do but waiting for SR-1570 to be fixed. I hope the FAQ will help other users. Thanks for the report!
from grdb.swift.
Related Issues (20)
- Issue with having in fetch query HOT 5
- `databaseDateEncodingStrategy` not wok when update a existing record HOT 1
- Throwing subscript Row value HOT 4
- Linker error when building for watchOS with Address Sanitizer enabled HOT 7
- Conflicting Database.logError ? HOT 3
- “database disk image is malformed” when deleting some datas HOT 1
- Setting a default value for a date time column HOT 3
- Pool.get got "priority inversions" warnings in concurrent visit. HOT 6
- Debugging no longer possible after installing Custom SQLite build HOT 3
- Privacy manifest file HOT 11
- Xcode "Hang Risk" warning due to "itemsSemaphore.wait()" priority inversion. HOT 2
- Recommend the IMMEDIATE transaction type in the Sharing a Database guide
- @CodedBy and ValueCoder Issues HOT 3
- Reconsider sync/async overloads? HOT 4
- Privacy Manifest HOT 4
- Add date time column with default as current date HOT 2
- GRDB/Spatialite ? HOT 8
- Fatal Error with Spatialite: could not decode String from database value NULL HOT 4
- Invalid schema cache causes a value observation to fail HOT 7
- Query too complex for me - some help required HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from grdb.swift.