3번째 실습 진행중 오류
동일하게 진행 하였습니다만
소리가 나지를 않습니다..
프로젝트 네비게이터에는 4개(3개의 소리, 1개의 스위프트파일)
을 넣어서 엑스코드에서는 소리가 들리는 것은 확인하였습니다.
실기기와 에뮬에서 실행하면 아무런 에러는 나오지 않습니다.
(디버깅 창에서)
이름을 변경하는 레이블은 잘 변경이 됩니다...
아래는 소스와 디버깅창입니다.. 따로 소리를 내기위해서는 설정해야 하는 부분이 있습니까?

回答 2
2
안녕하세요, 정상원님.
마지막까지 학습하시고 좋은 질문 주셔서 감사합니다.
덕분에 저의 실수를 보완할 수 있는 설명을 드리게 되어서 다행으로 생각합니다.
먼저, 제가 착각한 부분은 사운드의 특성과 변수의 Scope에 대한 것 입니다.
사운드 파일은 그 특성상 재생에 시간이 걸립니다.
하지만 함수 내에 선언한 변수의 경우, 그 함수의 실행이 끝나면 바로 메모리에서 릴리즈 되어 버립니다.
변수 내에서 사운드를 재생한 경우, 사운드 재생에 대한 명령을 실행하자 마자
사운드 파일이 메모리에서 사라져 버려서 더 이상 재생을 못하게 된 경우 입니다.
위 그림과 같이 사운드가 재생되는 시간동안 그 함수에 머무르게 하면 사운드가 끝까지 재생되는 것을 확인할 수 있습니다.
그래서 정상원님이 책의 코드와 동일하게 작성한 것 처럼,
뷰 컨트롤러 레벨에서 사운드 변수를 선언하면, 함수에서는 빠져 나오더라도 사운드 파일은 존재하고 있으므로
사운드 재생을 마무리 할 수 있었던 거죠.
보통 실제 앱 개발시 사운드 재생 관련한 기능을 구현할 때는 ,
SimpleSound.swift 내부에서처럼 AudioServicesPlaySystemSound() 함수를 바로 사용하는게 아니라AVAudioPlayer 등의 보다 하이레벨 API를 사용해 이러한 고려를 하지 않아도 되는 방식을 사용합니다.
이 부분은 책의 범위를 벗어나지만 AVFoundation을 참고하시기 바랍니다.
도움이 되셨길 바랍니다.
감사합니다.
0

자문 자답입니다만..
교재로 쓰인 책에서는 소리변수는 따로 위로 빼서 작성하더라구요.
혹시나 해서 그대로 쳐보니 정상적으로 작동(소리남)하였습니다.
강의에서 작성하신 코드대로 하면 왜 안되는 것일까요?
let의 사용법에 관련된 것인가요...?
수강 기간 연장 문의
0
28
1
수강연장부탁드려도될까요..
0
42
2
Combine Playground 에서 실행 시
0
57
2
70강 - 글로벌 액터로 격리된 Protocol 을 extension 에서 conform 시 타입 본체의 격리 수준 질문
0
41
1
searchable이 화면 하단에 위치해요
0
61
2
Drawing Cycle 관련 질문
0
72
1
앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?
0
95
2
델리게이트 패턴 관련 질문
0
66
2
ios 애드몹 광고
0
134
2
수강 기간 연장 부탁드릴 수 있을까요?
0
61
1
활용 앱 57강 질문입니다.
0
55
1
그래프 그리기 위한 API가 프리미엄 요금제를 구독해야만 가능하다고 합니다...ㅜㅜ
0
75
2
과거 ai없을때 듣고 다시 듣는 중인데
1
55
1
활용 앱 30강 에러 질문입니다
0
64
2
예제 빌드시 The compiler is unable to type-check this expression in reasonable time 에러 발생
0
54
1
TextField 에 Binding 으로 연결하면 에러 발생
0
54
1
xcode 26.2 에서 ReducerOf<Self> 이슈
0
77
2
20강 Task 내부에서 nonisolated async 호출 예제 질문드립니다
0
78
2
19강 Actor 의 동작 관련해 질문드립니다
0
83
2
기초앱 17강 Contraints 설정 질문입니다.
0
67
2
소리가 ㅠㅠ
0
54
2
Intro to App Development with Swift 책을 찾을 수 없습니다
0
297
1
로그
0
260
1
아무리봐도 assistant editor가 없습니다
0
740
1

