ios개발 92

swift에서 @objc란?

원래 swift는 오직 swift 코드에만 접근이 가능하도록 한다. 그런데 종종 우리는 objective-c 코드를 swift 파일내에서 사용해야 할 때가 있다. [www.hackingwithswift.com/example-code/language/what-is-the-objc-attribute]에 의하면 정확히는 런타임때 스위프트가 objc와 상호작용해야 할때라 한다. 우리가 아래 처럼 @objc를 붙이면 붙여진 swift 코드를 objective-c에서도 사용할 수 있다는 의미이다. class MyController: UIViewController { @objc func authenticateUser() { } }

ios개발 2021.05.01

<iOS개발> swift에서 sender란?

sender는 해당 메소드를 호출하는 caller를 말한다. 위의 버튼 클릭시 버튼 자체를 말한다. 처음에는 버튼에서 많이 보는데, 아래에서 sender가 보인다. @IBAction func mainButton(sender: UIButton) { println(sender.tag) } 다른 말로는 The object responsible for the action handler. [developer.apple.com/documentation/uikit/uiaction/3600315-sender] 액션 핸들러에 대한 책임이 있는 객체다.

ios개발 2021.05.01

<iOS> What is Cocoa? - 코코아란 무엇인가? 1편

ios 개발을 하다 보면 코코아라는 말을 많이 듣는다. 다음 링크를 정리해 보려 한다. 일단 1편을 정리하다 보니 양이 많아서 10편은 족히 나올거 같다.... 최대한 한국어 처럼 쓰려했다. 전문용어가 있긴해도 그대로 영어로 쓰면 영어로 읽느니만 못한거 같아서... 틀린부분좀 알려주시면 감사하겠습니다. What is Cocoa? 코코아란 OSX와 iOS 모두를 위한 어플리케이션 환경이다. 코코아는 아이폰, 아이패드 그리고 아이팟 터치의 멀티 터치를 지원하는 OS를 위해 사용된다. 코코아는 객체지향 소프트웨어 라이브러리, 런타임 시스템 그리고 통합 개발 환경으로 구성된다. 이 챕터에서 우리는 코코아의 정의, 목적의 묘사, 능력들 그리고 iOS OSX 두 플랫폼에서의 코코아의 구성요소들을 살펴보자. 여기서 ..

ios개발 2021.02.22

<swiftUI> 자간 - character spacing

swiftUI character Spacing으로 검색하면 kerning과 tracking이 나온다. kerning을 사용하면 자간을 조절할 수 있다. kerning은 합자 (ligature) -> 합쳐진 글자 여기서는 ff 합자에 대해서 아래와 같이 처리한다. 자간이 늘어나면 합자 간격도 늘어남, 줄어들면 합자 간격은 유지. tracking은 kerning이랑 비슷한데. The effect of tracking resembles that of the kerning(_:) modifier, but adds or removes trailing whitespace, rather than changing character offsets. Also, using any nonzero amount of tracki..

ios개발 2021.02.13

swift watchConnectivity 연결해서 데이터 주고 받기 위한 세팅 방법

워치앱 아이폰앱 연동 방법은 [developer.apple.com/documentation/watchconnectivity] 이걸로 해야한다. 이게 예제 프로젝트긴 한데 정리해서 설명하면.[developer.apple.com/documentation/watchconnectivity/using_watch_connectivity_to_communicate_between_your_apple_watch_app_and_iphone_app] 첫째, ios, watch 각각에 WCSession을 설정해야 한다. 둘째, 공통으로 sessionDelegater를 구현하고, 각자 안에서 watchOS와 iOS코드를 분기해 줘야 한다. 셋째, sessionCommands를 구현하고, 사용하고자 하는 클래스에 상속시켜서 사용..

<ios개발> Scaling Fonts Automatically

developer.apple.com/documentation/uikit/uifont/scaling_fonts_automatically Apple Developer Documentation developer.apple.com 음 개발하는데 왜 swiftUI watchOS에 폰트를 입력하는거 보다 2정도 작게 나오더라, 그래서 dynamic으로 안해서 그런가 했는데, 사실 별 상관 없는거 같긴한데, 위에 표보고 하니까 표에 적힌 사이즈대로 나오긴 하더라... 1. 일단 왜 작게 나오지 ㅠㅠ 2. dynamic font size는 언제 사용하는거지, 디자이너도 저 표를 알아야 되지 않나?

ios개발 2021.01.16

<watchOS 개발> watchOS에서 watchConnectivity 안될때

updateApplicationContext 에러 중에 지원하지 않는 페이로드라는 에러가 있다, 대충 "payLoad contains unsupported type"이라 뜸. [stackoverflow.com/questions/43876138/why-method-updateapplicationcontext-returns-payload-contains-unsupported-type] updateContextupdateApplicationContext(["key": value]) 이 코드에서 value가 지원하지 않는 타입이면 전송도 안된다. 경험한 워치 폰 연결 테스트 하는데 안되는 몇가지 상황을 적어보면 1. project 속성에서 Supports Running Without iOS App Install..

ios개발 2021.01.16

<java> 자바 MVVM 사용하는 방법. swing

[book.interpark.com/product/BookDisplay.do?_method=detail&sc.prdNo=268649098&gclid=Cj0KCQiA88X_BRDUARIsACVMYD_EgPJiBYn7QGOpnAAB5PG4enQ4GLG4LNBz3DquMUEsDIbyhEeZ6WYaAgC1EALw_wcB] 이 책을 보는데 import javax.swing.*; import java.awt.FlowLayout; import swidgets.*; import nz.sodium.*; public class clearfield { public static void main(String[] args) { JFrame frame = new JFrame("clearfield"); frame.setDefaul..

<ios개발> 한 뷰컨트롤러에서 두개의 UIPickerView 사용하기, UIToolBar 붙이기.

이런식으로 입력 창을 두개 만들고 싶었다. 나이 눌러도 위 화면처럼 뜨고, 키 선택해도 위 화면처럼 뜨도록 ㅎㅎ... 근데 코드를 작성해보니 안되더라, 바로 밑에는 성공, 그 밑에는 실패다. import UIKit class LoginViewController: UIViewController { @IBOutlet weak var ageTextField: UITextField! @IBOutlet weak var heightTextField: UITextField! var list1 = ["1", "2"] var list2 = ["a", "b"] override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading ..

ios개발 2020.12.29