inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

dispose 구문 관련하여

260

sg HYUN

작성한 질문수 15

0

dispose (3분 30초)경부터 제가 의미가 잘 이해가 안되어 문의 드립니다.

timer가 null이 아닌것은 항상이라고 봐야겠죠?

timer.periodic이 사용되었으니까요?!?

 

timer.cancel 을 설명하실때 homescreenstate가 삭제되는 순간이 오면이라고 하셨는데...

여기서 왜 삭제되는 순간이 생기는지 모르겠습니다 ㅠ

아직 삭제되기위한 설계전에 미리 설명으로 이해하면 될까요?

flutter 클론코딩

답변 1

1

코드팩토리

안녕하세요!

이 부분은 바로 이전 섹션인 상태관리 강의에서 설명 드렸습니다.

dispose가 실행되는 순간은 HomeScreenState가 삭제되는 순간 즉, 더이상 스크린에 HomeScreen 위젯이 존재할 이유가 없어지는 순간입니다.

현재 로직상에서 timer가 null인 상황이 생기는건 거의 불가능합니다. initState에서 timer 값을 설정해주고 있으니까요.

하지만 timer를 세팅해주는 코드가 실행되기 전에 에러가 생긴다던지, 나중에 누가 코드를 추가해서 timer가 null 이 될 수 있는 상황을 만들수도 있습니다. 그렇기때문에 "null이 가능하다"라는 형태로 변수를 선언했다면 현재 로직상 null이 될 수 없더라도 나중을 위해 예외처리를 무조건 해줘야합니다.

dispose도 마찬가지입니다. 현재 HomeScreenState가 dispose 되는 시나리오는 없습니다. 하지만 나중에 앱이 커져서 여러 스크린이 생기고 기능이 추가되어 dispose가 되는 시나리오가 생길 수 있기 때문에 그 가능성을 염두해두고 코드를 작성해야합니다.

감사합니다!

198강 (){onTap(e);}의 이해 돕기

0

39

1

video_call 플러그인 설치후 에러 발생

0

47

1

SDK 안드로이드 설치 질문!

0

62

1

코드팩토리 디스코드 링크 다시 부탁드려요~

0

93

1

Webview를 이용해서 URL 상의 페이지 출력 불가

0

71

1

홈스크린 함수를 함축해서 main.dart에 옮기는 문제

0

56

1

플레이스토어

0

60

1

아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?

0

56

1

가이드라인 질문

0

59

0

emulator 에러 환경설정 뭐가 문제 일까요??

0

78

1

emulator 실행 오류

0

95

3

Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련

0

73

1

pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의

0

44

1

setState()를 호출하지 않으면 build가 실행 안되는 건가요?

0

54

1

video_call 플러그인 설치시 에러문제

0

67

1

children 안의 if 문에서 { } 못쓰는 이유?

0

51

1

이렇게 오류가 떠요

0

66

1

AppBar 사용했는데

0

63

2

[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다

0

58

1

StatefulWidget 실습 에러가 발생합니다.[해결완료]

0

65

1

Video Player 프로젝트에 대한 추가 질문

0

54

0

Row위젯이나 column위젯의 위치는 누가 정하나요??

0

43

1

geolocator 오류때문에 개발진행이 불가능입니다

0

64

1

API 관련 이슈

0

89

2