Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Questions #7

Open
pjh6954 opened this issue May 27, 2021 · 21 comments
Open

Questions #7

pjh6954 opened this issue May 27, 2021 · 21 comments
Assignees
Labels
documentation 문서 개선 및 추가 (Improvements or additions to documentation) help wanted 개발 지원 요청관련 (Extra attention is needed) question 질문 사항 관련 (Further information is requested)

Comments

@pjh6954
Copy link
Owner

pjh6954 commented May 27, 2021

궁금한 점이나 물어볼 내용등이 있다면 이 Issue에 작성

@pjh6954 pjh6954 self-assigned this May 27, 2021
@pjh6954 pjh6954 added the documentation 문서 개선 및 추가 (Improvements or additions to documentation) label May 27, 2021
Repository owner deleted a comment from iOSDev-Dobby-test May 27, 2021
@iOSDev-Dobby-test

This comment has been minimized.

@junhuee
Copy link

junhuee commented May 27, 2021

안녀하십니까 주니후니 입니다.

스크린샷 2021-05-27 오후 4 34 33

이런식으로 해서 지역을 누르면 지역이 피커뷰 리스트에 들어가고 정류장을 누르면 지역에 해당하는 정류장을 또다른 피커뷰에 넣어주고있습니다.

지역에 지금 서울 부산 이렇게 두개있으면 서울 눌렀을때는 서울에 해당하는 데이터만 나와야 하는데.. 부산까지 전부다 나오고있어서요..
(당산 영등포 사당 역삼 강남 해운대 광안리 수영 )이런식으로 나오고있어서요.
포문을 이렇게 돌리고있는데 혹시 봐주실수있으실까요??ㅠ

             for d in items {
                print("p d       :    ",d)
                _ = d.srvcAreaCd
                let lr = d.lineRoute
                print("p 지역2",d.srvcAreaNm!)
                self.textAreaList.append(d.srvcAreaNm!)
                self.textArea.text = self.selectArea
                if self.selectArea == "" {
                    self.selectArea = d.srvcAreaNm!
                }
                for l in lr! {
                    self.textStationList.append(l.routeNm!)
                    self.sRouteId.append(l.routeId!)
                    self.textStation.text = self.selectStation
                    if self.selectStation == "" {
                        self.selectStation = l.routeNm!
                        self.selectRouteid = l.routeId!
                    }
                }
            }

@pjh6954
Copy link
Owner Author

pjh6954 commented May 27, 2021

@junhuee 음... items에 해당하는 model과 하위 모델까지 해당 코드에서 사용하는 것들만 좀 알려주실 수 있으신가요?
pickerview에 넣는 데이터는 self.textStationList랑 self.textAreaList인것 같은데, 이전에 초기화는 혹시 하시나요?
지역을 빈 값에서 서울 또는 부산으로 바꾸거나 선택되어있던 것에서 다른 것으로 선택을 할 때 각각 초기화 시켜주신 후 코드를 호출하셔야 해당하는 것만 나올 것 같은데..

for d in items {
  
}

이 부분만 봐서는 제가 생각하고 있는게 맞나 싶은데
일단 처음에 pickerview에서 각각 사용하는 데이터가 self.textStationList랑 self.textAreaList라면, for문 조건상으로 봤을 때 다음 플로우로 진행이 됩니다.

// 가정 :  items에는 먼저 지역(d)들이 있고, 각 지역 모델(d)의 하위에 LineModel(l) 모델을 Array로 갖고 있는 LineRoute(lr)이 있다고 가정합니다.
// 1. items는 자신이 갖고 있는 모든 d에 대해서 for문을 실행하게 됩니다.
// 2. 각 d는 또 하위에 있는 lr들을 for문을 통해서 실행합니다.
// 이 때 1.을 실행 할 때 각 d는 textAreaList에 append 됩니다.
// 그리고 마찬가지로 2.에서 각각의 d의 하위인 lr이 실행되는데, <- 여기서 문제가 발생합니다.
// 서울 하위의 lr들이 textStationList에 추가 되었는데 1.의 이유로 인해 부산 하위의 lr들 또한 textStationList에 추가 됩니다.
// 따라서 말씀하신 문제가 발생하는 걸로 보입니다.
  • edit
    • 추가로 저 for문은 언제 사용하고 싶으신건지 말씀해주시면 좋겠습니다. 매번 state변경 될 때 호출이 되는지, 아니면 가장 처음 초기화때 호출이 되는지 알려주세요.

@junhuee
Copy link

junhuee commented May 27, 2021

스크린샷 2021-05-27 오후 5 43 28

items에 해당하는 model과 하위 모델까지 해당 코드에서 사용하는 것들만 좀 알려주실 수 있으신가요라고 하셨는데
모델과 하위모델이 어떤건지 이해를 잘못하겠습니다. ㅠㅠ

저화면에 진입시 포문을 돌면서 리스트에 넣으려고 하고있습니다.

@pjh6954
Copy link
Owner Author

pjh6954 commented May 27, 2021

@junhuee 지금 퇴근하고 있는데, 일단 유사하게 동작하는 기능 구현한 후 말씀드릴게요.

@junhuee
Copy link

junhuee commented May 27, 2021

@pjh6954 네 감사합니다 저도 계속적으로 시도해보고있어요 ㅋㅋ

@pjh6954
Copy link
Owner Author

pjh6954 commented May 27, 2021

@junhuee PickerView Exmaple 업데이트 했습니다.
링크
예제로 구현했는데 한 번 살펴보시고 이해 안되는 부분 말씀해주세요.

@pjh6954 pjh6954 added question 질문 사항 관련 (Further information is requested) help wanted 개발 지원 요청관련 (Extra attention is needed) labels May 28, 2021
@junhuee
Copy link

junhuee commented May 28, 2021

@pjh6954 매번 감사합니다. 예제 정말 잘 봤습니다!!!

저도 피커뷰에 들어가는 데이터를 정하고 뿌려주기를 했을때는 리스트에 잘뿌렸었는데..ㅠ

데이터를 받아서 뿌리려고하니. 참.. 이게 뭔가 어렵네요..

서버통신해서 리절트로

result SelectLineRouteList(resultCd: Optional("SUCCESS"), dataList: Optional([SelectLineRouteList_Data(srvcAreaCd: Optional("A01"), srvcAreaNm: Optional("영종"), lineRoute: Optional([SelectLineRouteList_Route(routeId: Optional("17"), routeNm: Optional("진짜 노선"), routeTypeCd: Optional("A"))])), SelectLineRouteList_Data(srvcAreaCd: Optional("A04"), srvcAreaNm: Optional("인(테스트)"), lineRoute: Optional([SelectLineRouteList_Route(routeId: Optional("18"), routeNm: Optional(" 디스플레이"), routeTypeCd: Optional("A")), SelectLineRouteList_Route(routeId: Optional("10"), routeNm: Optional(" 라인모드"), routeTypeCd: Optional("A"))]))]))

이런식으로들어오는거에서 데이터를 리스트에 넣으려고 했는데.. 음.. 생각하는데로 안들어가네요 ㅋㅋ

@pjh6954
Copy link
Owner Author

pjh6954 commented May 28, 2021

Json으로 result 받아오시나요?

@junhuee
Copy link

junhuee commented May 28, 2021

네 json으로 받아오고있습니다. 위에 데이터가 print("result",result) 한 내용 입니다.

@junhuee
Copy link

junhuee commented May 28, 2021

데이터 넣는 부분을 변경하여 수정하였습니다.

지역 을 확인했을때 스테이션의 정보를 지역에 맞게 호출하는 방식으로 변경하였습니다. ㅋㅋ

맞는곳에서 한건지는 잘모르겠찌만. ㅠㅠ

@pjh6954
Copy link
Owner Author

pjh6954 commented May 28, 2021

@junhuee 올리신 json기준으로 파싱해서 사용하는 예제로 업데이트 해드릴게요

@junhuee
Copy link

junhuee commented May 28, 2021

@pjh6954 감사합니다 업데이트 해주시면 제꺼와 비교해서 다시 테스트 해보겠습니다!!!

@pjh6954
Copy link
Owner Author

pjh6954 commented May 31, 2021

@junhuee 제가 주말동안 일이 있어서 아직 구현이 다 안되었네요. 오늘이나 내일 내로 구현해서 올려드릴게요

@junhuee
Copy link

junhuee commented May 31, 2021

@pjh6954 구현안해주셔도되용 저의방법으로 일단 구현해보고 해서 괜찮을것같아요

이제 딥링크 만들어보고있는데 혹시 딥링크도 해보셨나요??
파이어베이스 연결해서 앰에서 앱실행하는 그런거 해보고있는데 ㅋㅋㅋ

@pjh6954
Copy link
Owner Author

pjh6954 commented May 31, 2021

@junhuee 네. 어지간한 회사에서 파이어베이스로 크래시리틱스 연동하면 딥링크 관련된 것도 거의 들어가 있어요. 아무래도 마케팅쪽에서 링크로 홍보하고 바로 연결되는걸 원하니 구현 할 수 밖에 없죠.

@junhuee
Copy link

junhuee commented May 31, 2021

스크린샷 2021-05-31 오후 1 12 44
앱이 실행되면서 저기로 유알엘이 들어오는데 저기서 파라미터로 id 값을 전달 받고있는 상태입니다.
파라미터 id 값을 받을수있는 방법이 따로 있는건가요?ㅠㅠ

@pjh6954
Copy link
Owner Author

pjh6954 commented May 31, 2021

@junhuee 잘 이해가 안가는데 url 들어온 값에서 query 부분에 id라는 값이 있어서 해당 값을 이용하신다는건가요?
ex) github.io/requestTest/?id=idvalue
위처럼 url이 온다고 가정 했을 때 id에 해당하는 "idvalue"를 전달받아 사용하고 싶으시다는거 맞나요?

일단 그 부분은 저도 서버쪽이나 파이어베이스관리 쪽을 건든지 좀 되어서 잘 기억은 안나는데
https://medium.com/firebase-developers/firebase-dynamic-links-guide-76552c0f292e
https://firebase.google.com/docs/dynamic-links/create-manually
이 부분 참고하시면 될 것 같습니다.(firebase custom deeplink query example 이라고 검색하시면 관련 자료들이나 블로그 잘 나올겁니다.)

swift에서 해당 url이용하는 방법은 다른 URL을 이용할 때 query 부분 갖고오는 것과 동일하게 이용하시면 됩니다.

보통 쿼리 시작부분은 ? 로 시작을 하고 value는 = 이후, 각 parameter key 분리는 & 로 나뉘어지니 그것들을 이용해서 split시키시면 되구요.

@junhuee
Copy link

junhuee commented Jun 1, 2021

@pjh6954 감사합니다 어제 혼자 머리를 쥐어잡고 하면서 하긴했느데 ㅋㅋ 알려주신부분 한번 보겠습니다^^

@pjh6954
Copy link
Owner Author

pjh6954 commented Jun 1, 2021

@junhuee 다른 문의 사항 있으시면 언제든 여기에 물어보시면 됩니다.

@junhuee
Copy link

junhuee commented Jun 2, 2021

@pjh6954 네 다른고 시도해보면서 궁금한거있음 물어보겠습니다!!
감사힙니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation 문서 개선 및 추가 (Improvements or additions to documentation) help wanted 개발 지원 요청관련 (Extra attention is needed) question 질문 사항 관련 (Further information is requested)
Projects
None yet
Development

No branches or pull requests

3 participants