Comments (8)
@CodaFi Yeah, not to mention you can't produce correct Swift throws
overlays because of the return type. I don't know how to correct that one unfortunately.
Also, I remember you from the TwUI days... hello again! ๐
from cgsinternal.
Sure! I'm not sure what the look and feel of these APIs is when they're imported in Swift, but if you're up to it I'd certainly appreciate the contribution.
from cgsinternal.
@CodaFi You'll need to mark things with __Nullable
and __Nonnull
for starters, and I believe you can create a package overlay via NS_SWIFT_NAME
pretty easily to transform it into a struct or class-like interface.
from cgsinternal.
Determining nullability for this API surface is going to be a painful slog, I can feel it...
from cgsinternal.
None of these functions should ever throw a catchable exception. Not only would it have violated an invariant across a MIGโed interface, it would be bubbling up from across at least one framework boundary.
I think weโre going to need APINotes here too. NS_SWIFT_NAME is only fine in the small.
from cgsinternal.
Well, I would see it as the CGError
being returned would instead be caught or ignored by a try?
or so. And your suggestion of APINotes
is probably more correct - I was thinking of just wrapping the functions in an ObjC class and letting Swift auto-import that but it causes some unwanted (and un-needed) overhead.
from cgsinternal.
The few CGError-returning public APIs I can find don't import as throwing. Do you have an example of what you had in mind?
from cgsinternal.
Right - I was suggesting having them import as throwing instead. i.e. CGError CGSDoSomething(...)
would import as func CGSDoSomething(...) throws
.
from cgsinternal.
Related Issues (8)
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 cgsinternal.