• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

검색어 넘어갈때 질문있어요.

23.06.15 17:56 작성 조회수 229

0

안녕하세요 엘런,

활용9를 코드 베이스로 구현 해봤는데

띄어쓰기를 포함해서 검색하면 이런 에러가 나는데 이유가 궁금합니다... ! 제공해주신 파일에서도 그렇더라구요.

답변 4

·

답변을 작성해보세요.

0

syp0211님의 프로필

syp0211

질문자

2023.06.16

우와 그런거였군요....!!

앞으로 좀 더 다양하게 생각해보는 연습도 해보겠습니다..

답변 감사합니다 !!! 👍🏻

0

syp0211님의 프로필

syp0211

질문자

2023.06.16

안녕하세요, 엘런. . .

빈 배열을 만들어주는 부분이 데이터 셋업을 하면서

self.musicArrays = []

이렇게 해주는 것 아니였을까요..?

시작 전에 다시 빈 배열로 만들어주는 것으로 이해하였는데.. 아니라면 다시 한번 이해해보겠습니다...

 

덧붙여서 제가 가지고 있는 파일이 이상한 것인가 싶어서 수업자료를 다시 다운로드 받아서 실행해보았는데요..

제 쪽에서는 동일한 에러가 발생해서 혹시 저만 발생한다면 다른 컴퓨터에서 실행해보도록 하겠습니다 ㅠㅠ

영상은 첨부가 안 되어 링크로 확인부탁드려도 될까요?

https://drive.google.com/file/d/1hkOW6mqHy_4bReTKEFzBNT4RwbhhR3QI/view?usp=sharing

 

아아, 애플이 제공해주는 API에 스페이스바가 있으면 인식이 안되네요.
(제가 그런 예외 상황을 미리 고려를 못해서 죄송합니다..ㅠㅠ)

"bad boy" 라고 보내면 안되고,
만약에 "bad boy"라고 검색했을때 "bad+boy"라고 요청을 보내면 됩니다. (지금 현재코드에서는 띄어쓰기가 생기는 상황이 고려가 안되어 있네요.)

띄어쓰기가 생기는 상황이 고려가 안되어서,
"bad boy"라고 띄어쓰기로 요청할때, API가 작동이 안되고, 그때 빈배열이 되네요.
빈배열이 된순간... 우리 눈에는 "bad" 단어로 검색한 셀들이 보이고 있어서..

실제 지금 배열의 인덱스가 벗어나는 현상의 원인은
"bad"까지 검색한 셀이 있어서.. 데이터가 있는 것처럼 보이지만, (API요청이 제대로 안되어서) 실제 배열은 비어있는 상황인거네요.

이런 현상을 없애기 위해서, 스페이스바가 입력이 되었을때,
스페이스바를 ====> +로 바꾸는 로직을 추가했습니다.

image

아래의 코드는 문자열에 " "(스페이스바)가 입력된 부분을 "+"로 교체하는 코드입니다.

let 새로운문자열 = 문자열.replacingOccurrences(of: " ", with: "+")

위처럼 코드를 추가하시면, API요청시에
"bad boy"를 =====> "bad+boy"로 바꾸어서 요청하게 됩니다.

지금 코드에.. 위에 빨간 박스 부분을 추가하시면 될 것 같습니다. :)


이런 오류를 발견하시면, 일단 배열의 인덱스가 벗어난다고 알려주고 있으니.. 배열의 인덱스가 벗어날만한 상황이 왜 생기는 지를 (1) 잘 분석해보거나 (2) 여러 가능성을 나열해보고 하나 하나 찾아가시면.. 꼭 제가 아니어도 직접 문제를 충분히 해결할 수 있으실꺼예요!


감사합니다. :)

0

syp0211님의 프로필

syp0211

질문자

2023.06.15

앗.. post malone을 입력하고 enter 키를 누르면 발생하는 오류 같아요. 엔터키는 따로 처리가 필요해서 나는 에러일까요?

0

안녕하세요, syp0211 님.

저 오류는 배열의 범위를 벗어난다는 뜻입니다.

musicArrays배열의 범위가 왜 벗어나는지 생각해보시면 좋을 것 같고, 더 구체적으로 질문을 주셔야 알 수 있습니다.

제 코드에서는 제가 지금 확인차 검색창에 띄어쓰기를 포함해서 해보았는데.. 띄어쓰기로 해도 오류가 안 나오는데.. 지금 주신 질문 만으로는 제가 구체적으로 오류를 파악하기는 어렵습니다..ㅠ

어떤 글자를 어떻게 띄어쓰기를 입력했는지.. 아니면 코드 예시라도.. 등등 있어야 오류를 파악할 수 있어요..