5.iOS(Swift4.0)용 ECHONET Lite 프로토콜 라이브러리

iOS용 ECHONET Lite 프로토콜 라이브러리를 만들었기 때문에 사용법을 설명한다.

  • Xcode 9.4.1로 업데이트된 정보입니다.
  • 오자와 누자를 수정하였다.
  • 빨리, 간단하게 해.
    참고로 소스 코드는 MIT 라이센스입니다.모두 안심하세요.
  • Cocoapods
    https://cocoapods.org/?q=ELSwift
  • Github (ELSwift)
    https://github.com/Hiroshi-Sugimura/ELSwift
  • 내부적으로 GCDAsyncUdpSocket에 의존합니다.
    (GCDAsyncUdpSocket은 Public domain입니다.)

    1. Xcode를 통한 Project 준비

  • Xcode
  • File, New, Project
  • iOS, Single View Application, Next
  • Product Name: ELSwiftTest, Next
  • 이런 느낌?
  • (여기저기 있지만 이번/Doctoments에서 Xcode라는 폴더Create를 제작하고 선택)
  • File, Save
  • Xcode, Quit Xcode
  • 2. Podfile 준비

  • 프로젝트 폴더가 이렇다면
  • 압출 위치(xcodeproj와 같은 위치)에서 새 Podfile
  • 다음은 Podfile에 텍스트로 기술
  • use_frameworks!
    
    target 'ELSwiftTest' do
      pod 'ELSwift'
      pod 'CocoaAsyncSocket'
    end
    
  • terminal
  • 열기
    $ cd ~/Documents/Xcode/ELSwiftTest/
    $ pod setup
    $ pod update
    
  • ELSwiftTest.파일 이름이 xcworkspace이기 때문에 앞으로 이 개발을 사용할 것입니다.
  • 3. 데모 해보기


    구체적인 Xcode와 Swift의 프로그래밍은 다른 자료를 보십시오
    이러한 느낌으로 GUI와 객체 제어점의 대응

    프로그램이 이렇게 바뀐 느낌.
    import UIKit
    import ELSwift
    
    class ViewController: UIViewController {
    
        @IBOutlet weak var logView: UITextView!
        @IBOutlet weak var btnSearch: UIButton!
        let objectList:[String] = ["05ff01"]
    
        override func viewDidLoad() {
            super.viewDidLoad()
            logView.text = ""
    
            do {
                try ELSwift.initialize( objectList, { rinfo, els, err in
                    if let error = err {
                        print (error)
                        return
                    }
    
                    if let elsv = els {
                        let seoj = elsv.SEOJ
                        let esv = elsv.ESV
                        let detail = elsv.DETAIL
                        self.logView.text = "ip:\(rinfo.address), seoj:\(seoj), esv:\(esv), datail:\(detail)" + "\n" + self.logView.text
                    }
                }, 4)
            }catch let error{
                print( error )
            }
    
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
        @IBAction func btnSearchDown(_ sender: Any) {
            ELSwift.search()
        }
    
    }
    
    혹시 이 타이밍에 import문이 있는 곳에서.
    Cannot load underlying module for 'ELSwift'
    
    이런 오류가 발생할 수 있지만'⇔8984:+B'로 컴파일하면 사라질 것 같아요.
    Warning은 다음 UDP 관계로 인해 조금씩 나타날지도 모른다.아마 괜찮을 거예요. 좋아하는 사람은 고쳐주세요.
    Parameters of 'udpSocket(_:didReceive:fromAddress:withFilterContext:)' have different optionality than expected by protocol 'GCDAsyncUdpSocketDelegate'
    

    4. 활동.


    시뮬레이터의 결과는 이렇다.
    통신해야 하기 때문에 대화상자에서 경고가 나옵니다. 허락해 주십시오.

    5. Swift와 Xcode를 사용하기 어렵다는 것을 다시 한 번 깨달았다.


    여기가 아픈 곳이에요.

     6. 흔히 볼 수 있는 오류와 대책


    여기도 고통스러워요.

    좋은 웹페이지 즐겨찾기