반응형

Software 94

Swift 에서 C의 매개변수로 값 넘기기

예전부터 TCP/IP를 C언어로 개발하다 보니 아직은 Swift가 어색하다. 그래서 SwiftUI의 프로젝트에서 브리지를 사용하여 C언어로 개발 된 함수를 불러 오기로 했다. 함수를 그냥 부르는 것 까지는 아무 문제 없이 되었는데, 다음과 같은 문제가 있었다. Swift 파일 안에 [let s = "Hello!!"] 가 있다고 하자, 변수 s 를 최종적으로 [void clientMain(char *inform)]에 넘기고 싶다. 따라서 "s" 를 "inform"으로 넘겨 줄 경우에 형 변환을 해야 된다. 어설프게 나마 다음과 같이 변환을 하였는데, var dataname: [CChar] = inform.cString(using: String.Encoding.utf8)! clientMain(&datanam..

Software/Swift 2021.02.26

Swift 브릿지 헤더 (Objective-C Bridging Header) 제거하기

프로그래밍을 하다가 브리지 헤더를 그냥 지워 버렸더니 아래와 같이 에러 메시지가 나면서 빌드가 안된다. Error opening input file '/Users/*****/Desktop/***********/***********/Classes/Objective-C/TCP/***********-Bridging-Header.h' (No such file or directory) 어떻게 되돌리는 방법이 없나 찾아보니까, 프로젝트 파일의 "Build Settings"에 가서 "Swift Compiler - General" 항목에 "Objective-C Bridging Header"에 가보니까 아까 지웠던 브리지 파일의 설정이 남아 있었다. 오른쪽의 "Objective-C Bridging Header" 부분의 ..

Software/Swift 2021.02.25

Swift UI 프로그래밍: 버튼 설정

Swift UI에서의 버튼의 설정은 아래와 같다. Button(action: { //버튼이 눌리게 되면 실행될 것 print("버튼이 눌려 졌다.") }) { Text("버튼 이름을 적는다.") } 버튼에 이미지를 넣고 싶은 경우는 아래와 같이 한다. Button(action: { //버튼이 눌리게 되면 실행될 것 print("버튼이 눌려졌다.") }) { Image("그림 파일 이름") //여기서 사용될 그림파일은 [Assets.xcassets]에 미리 복사 해 놓는다. .resizable() .scaledToFit() .frame(width: 100.0, height: 200.0) } .buttonStyle(PlainButtonStyle()) //버튼이 그냥 파란색으로 보이고 이미지가 보이지 않을 경..

Software/Swift 2021.02.25

아이폰 서비스 안됨...

fermium.tistory.com/735 아이폰 서비스 안됨 아이폰에 심카드를 넣어도 "서비스 안됨" 이라는 표시만 뜨고 네트워크에 연결이 안될때가 있는데, 여러가지 원인이 있을수 있으나, 고장은 절때 아니라고 생각되는 경우인데도 연결이 안되는 � fermium.tistory.com 내 블로그의 20% 이상이 [아이폰 서비스 안됨] 때문에 들어온다... 매달 200건 이상으로 검색에 걸리는데, 이 정도면 애플도 어떻게 손을 써야 되는 거 아닌가 모르겠다.. ;;

Software/iOS 2020.08.16

C언어와 Swift를 이용한 TCP-IP 에서 발생한 문제

C언어로 다 짤때는 atoi로 int형 변환을 하든가 아니면 배열로 받아지니까 배열 범위를 지정해서 strcpy 같은 걸로 문자열 복사를 해서 데이터를 다루곤 했는데, Swift는 String[Int}로 문자 접근 자체가 안되는거 같더라. 따라서, 맥에서는 C언어로 짠 서버를 굴리고, 아이폰에서 클라이언트를 생성하여 데이터를 recv해서, 그 결과를 이용하여서 for문을 생성할려고 했는데 생각한 데로 잘 안된다. 처음부터 C언어로 개념이 잡혔었던 나에게 혼란이 와서 어떻게 하면 좋을까 자료를 많이 찾아봤다. 단순하게 Int() 를 쓰면 numPlace에 1이 들어갈 줄 알았는데 아래와 같이 nil이 들어간다. 따라서, 해결방법을 찾으려 계속 검색하다가 아래와 같은 방법으로 해결을 봤다. 책보고 진득하게 ..

Software/Swift 2020.03.24

안드로이드 개발을 시작 해 봤다.

안드로이드 스튜디오를 인스톨 한 뒤에 아마존 킨들 HD 8을 대상으로 테스트 앱을 만들어 봤다. 내 연구의 Hello world! 인 로봇 시스템을 이식하면 좋겠다 싶어서 시작해 봤다. 아이폰은 Swift로 개발 하기 시작했으니, 안드로이드는 Kotlin으로 개발 시작이다. 내가 아이폰 프로그래밍에 아주 익숙해져 있던 탓인지, 안드로이드 스튜디오 쓰는 것도 불편하고, 킨들이 사양이 낮아 그런 모양인 거 같은데, 실기에 빌드하는 게 많이 느리다. 개발자의 입장으로만 본다면 아이폰이 개발하기 편한 플랫폼인 건 사실인 거 같다.

Software/Android 2020.01.15

iOS 프로그래밍에서 음성합성 사용하기.

커뮤니케이션에서 필요한 요소 중의 하나가 음성으로 표현하는 것 일 것이다. 이전까지는 Objective-C 만으로 프로그래밍 하다가 Swift 프로그래밍 해 봤다.iOS 7 부터 AVSpeechSynthesizer 클래스를 공개하여, 다른 부가적인 소프트웨어를 사용하지 않더라도 독자적으로 음성합성이 가능하도록 되어있다. 우선 AVSpeechSynthesizer를 사용하기 위해서는 "import AVFoundation" 를 먼저 해 주어야 한다. 그 다음에는 아래와 같이 설정 해 주면 간단히 실행 가능하다. 12345678910111213141516171819202122func speechiOS(sentence: String, languageCode: String){ //AVSpeechSynthesizer..

Software/Swift 2018.04.08

Core ML

iOS 11 부터 Core ML이라는 프레임워크가 나왔다.비전 관계나 자연언어처리와 같은 분야의 기계학습을 쉽게 적용 시킬 수 있게 되었다.Core ML: https://developer.apple.com/machine-learning/ MLMODEL 이란 파일을 미리 준비 해 두면, 어플 적용시에 오프라인으로 사용이 가능함에 따라 개인정보침해에 대한 걱정이 없다는 것이 메리트 인거 같다. 이것저것 쓸모있는 어플이 많이 개발 될 수 있겠다 싶다.

Software/iOS 2018.04.04
반응형