Problem with UIImageWriteToSavedPhotosAlbum
Les mainteneurs répondent en général sous 1 jour
Une pull request liée a déjà été fusionnée.
- #116 par @Logikgate — fusionnée
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- ios, typescript
- Domaine
- mobile-dev
Piste de recherche
Commencez par reproduire l’assertion de saveToAlbum dans image-util.ios.ts avec @nativescript/ios 7.2.0, puis comparez le même code completionTarget de UIImageWriteToSavedPhotosAlbum avec la version 6.5.4. L’issue est résolue lorsque le callback de complétion fonctionne sans l’assertion de ClassBuilder dans la version la plus récente.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Hey there I encountered a problem when calling UIImageWriteToSavedPhotosAlbum with a completionTarget. This error does not appear if I use "@nativescript/ios": "6.5.4", instead of "@nativescript/ios": "7.2.0".
I also tried to use the Typescript Subclassing Syntax without any success.
Error:
====== Assertion failed ======
Native stack trace:
1 0x10f628630 tns::Assert(bool, v8::Isolate*) + 119
2 0x10f620d3d tns::ClassBuilder::GetTypeEncodingType(v8::Isolate*, v8::Local<v8::Value>) + 121
3 0x10f61eda7 tns::ClassBuilder::ExposeDynamicMethods(v8::Local<v8::Context>, objc_class*, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Object>) + 1069
4 0x10f61e93f tns::ClassBuilder::ExposeDynamicMembers(v8::Local<v8::Context>, objc_class*, v8::Local<v8::Object>, v8::Local<v8::Object>) + 219
5 0x10f61def5 tns::ClassBuilder::ExtendCallback(v8::FunctionCallbackInfo<v8::Value> const&) + 459
6 0x10f75fd2c v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) + 620
7 0x10f75f1dc v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) + 556
8 0x10f75e863 v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) + 259
9 0x10fff7819 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit + 57
10 0x10ff90842 Builtins_InterpreterEntryTrampoline + 194
JavaScript stack trace:
at saveToAlbum (file: .../image-util.ios.ts:10:46)
Code Snippet:
This implementation is based on this post.
const CompletionTarget = (<any> NSObject).extend({
'thisImage:hasBeenSavedInPhotoAlbumWithError:usingContextInfo:': function (image, error, context) {
if (error) {
console.log("on error", error);
}
}
}, {
exposedMethods: {
'thisImage:hasBeenSavedInPhotoAlbumWithError:usingContextInfo:': {
returns: interop.types.void,
params: [UIImage, NSError, interop.Pointer]
}
}
});
const completionTarget = CompletionTarget.alloc().init();
UIImageWriteToSavedPhotosAlbum(imageSource.ios, completionTarget,'thisImage:hasBeenSavedInPhotoAlbumWithError:usingContextInfo:',null);
Calling UIImageWriteToSavedPhotosAlbum without a completionTarget works fine.
UIImageWriteToSavedPhotosAlbum(imageSource.ios, null, null, null);
Setup:
"dependencies": {
"@angular/animations": "~11.2.7",
"@angular/common": "~11.2.7",
"@angular/compiler": "~11.2.7",
"@angular/core": "~11.2.7",
"@angular/forms": "~11.2.7",
"@angular/platform-browser": "~11.2.7",
"@angular/platform-browser-dynamic": "~11.2.7",
"@angular/router": "~11.2.7",
"@nativescript/angular": "~10.0.0",
"@nativescript/core": "7.3.0",
"@nativescript/unit-test-runner": "^1.0.2",
"core-js": "3.9.0",
"reflect-metadata": "~0.1.12",
"rxjs": "^6.5.5",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.1102.6",
"@angular/cli": "~11.2.6",
"@angular/compiler-cli": "~11.2.7",
"@nativescript/android": "7.0.1",
"@nativescript/ios": "7.2.0",
"@nativescript/types": "7.3.0",
"@nativescript/webpack": "~3.0.0",
"@ngtools/webpack": "~10.0.0",
"@types/jasmine": "~3.6.0",
"codelyzer": "^6.0.0",
"karma": "6.3.1",
"karma-jasmine": "~4.0.0",
"karma-nativescript-launcher": "0.4.0",
"karma-webpack": "3.0.5",
"node-sass": "^4.7.1",
"tslint": "~6.1.3",
"typescript": "4.1.5"
}
- Langage dominant
- JavaScript
- Étoiles
- 150
- Forks
- 44
- Merge moyen
- 1 j 1 h
- PR mergées (30 j)
- 10
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de NativeScript/ios
-
isImplementedInClass leaks the losing sample instance on re-entrant or racing cache populationOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 38/100
NativeScript/ios#459 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
worker.terminate() is a no-op during entry evaluation, and terminating there wedges teardownOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
NativeScript/ios#445 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 3-5 jours Accessibilité débutants 66/100
NativeScript/ios#414 ·
Les mainteneurs répondent en général sous 1 jour
-
question
Difficulté 4/5 3-5 jours Accessibilité débutants 34/100
NativeScript/ios#364 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
NativeScript/ios#355 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de NativeScript/ios
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
invoiceninja/invoiceninja#13320 ·
Les mainteneurs répondent en général sous 1 jour
-
NoCode.vue, Task.vue: replace explicit `any` with real typesPeut-être pris @prayas-bit l’a pris aujourd’hui. Ouvertearea/frontend good first issue kind/cooldown
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
kestra-io/kestra#20347 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Electron/Chromium StatusNotifierItem unreachable via unique bus name, tray icon never appearsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
ubuntu/gnome-shell-extension-appindicator#676 · 1 commentaire ·