Problem with UIImageWriteToSavedPhotosAlbum
Mantenedores costumam responder em até 1 dia
Um pull request relacionado já foi integrado.
- #116 de @Logikgate — integrado
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Bug
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- ios, typescript
- Domínio
- mobile-dev
Direção de pesquisa
Comece reproduzindo a assertion de saveToAlbum em image-util.ios.ts com @nativescript/ios 7.2.0 e, em seguida, compare o mesmo código de completionTarget de UIImageWriteToSavedPhotosAlbum com a versão 6.5.4. O issue estará resolvido quando o callback de conclusão funcionar sem a assertion de ClassBuilder na versão mais recente.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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"
}
- Linguagem predominante
- JavaScript
- Estrelas
- 150
- Forks
- 44
- Merge médio
- 1d 8h
- PRs com merge (30d)
- 8
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de NativeScript/ios
-
isImplementedInClass leaks the losing sample instance on re-entrant or racing cache populationAberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 38/100
NativeScript/ios#459 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
NativeScript/ios#445 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 3-5 dias Facilidade para iniciantes 66/100
NativeScript/ios#414 ·
Mantenedores costumam responder em até 1 dia
-
question
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 34/100
NativeScript/ios#364 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
NativeScript/ios#355 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de NativeScript/ios
Issues semelhantes
-
area:docs bug triage:confirmed
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Cotal-AI/Cotal#2875 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
[Feature]:Abertaenhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
Uuriko/project-room#1554 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 4 dias
-
automated issue report
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
lirantal/discoprint#36 ·
Mantenedores costumam responder em até 1 dia