오류 내용은 30개의 정의되지 않은 내용이 있다는 사항

"_OBJC_CLASS_$_APMAnalytics", 가 없다 뭐 가 없다  

내가 정의하지않은 부분이라 당황하면서도 클린도 해보고 껏다 켜보기도하고 해도 안되다가

 

결국 Pod update를 호출 하니 다시 돌아간다.

 

며칠인데도 뭔가 업데이트 사항이 있었나보다

 

이것도 안되면 그냥 pod로 깐 라이브러리들을 죄다 지우고 다시 설치해볼 생각이였으나 update로 해결되서 다행임.

반응형

요즘 노는 시간 도중도중 공부를 하고있는데

 

그 공부하고있는것중 ios용 키보드를 하나 만들고있다.

 

이곳에 쏟아 붇는시간이 얼마되지않아 진도가 많이 느리고 

 

처음에 제대로 공부하고 계획짜서 시작한게아니라 벌써 2번이나 갈아엎은 프로젝트이다.

 

기록을 살펴보니 최초일자가 5월19일

 

시작날짜만 보면 근 11일정도하고 영문키보드까진 됐는데

 

만들어야지 하고 이글 저글 스크랩만 해뒀던게 5월초부터니

 

근 한달간 공부는 키보드관련만 하고있었다

 

그렇게 근 한달정도된 프로젝트 진행 소스는 아래에 있다.

 

https://github.com/wiwi-git/FirstKeyboard

 

wiwi-git/FirstKeyboard

키보드 만들어보기... Contribute to wiwi-git/FirstKeyboard development by creating an account on GitHub.

github.com

키보드 디자인은 최대한 기본 키보드UI에서 벗어나질 않으려고 했고

 

기본 키보드를 쓰면서 제일 불편했던 숫자부분과 특수문자부분을 바로 입력가능하도록한 프로젝트였으나

 

여기까지 만들어놓고보니

 

한글을 입력하면!

 

자음, 모음이 하나씩 들어간다

 

합쳐지질 않는다

 

 

몰랐다.

 

 

새로운걸 알게되서 좋긴하나

 

어떻게 해야할지 모르겠다

 

조합하는거 자체는 어느 고마우신분이 c#으로 작성해둔게 있어서 Swift 소스로 바꿨는데

이걸 어떻게 입력이 들어가야할지 막막해져서 

 

원래는 완성되면 올리려고한 포스트를 진행상황과 자모 합하는 함수 저장용으로 이 포스트를 남긴다.

 

아래 주소는 네이버 닉 골드러쉬님이 c#으로 12년도에 작성한 포스트이다.

m.blog.naver.com/goldrushing/130145910594

 

[C#] 한글 자음/모음 조합하기.

참조: 데브피아 (http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=17&MAEUL...

blog.naver.com

 

이걸 swift로 변환하면 이렇게된다.

 

let cho:[Character] = ["ㄱ","ㄲ","ㄴ","ㄷ","ㄸ","ㄹ","ㅁ","ㅂ","ㅃ","ㅅ","ㅆ","ㅇ","ㅈ","ㅉ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"]

let jung:[Character] = ["ㅏ", "ㅐ", "ㅑ", "ㅒ", "ㅓ", "ㅔ", "ㅕ", "ㅖ", "ㅗ", "ㅘ", "ㅙ", "ㅚ", "ㅛ", "ㅜ", "ㅝ",
                        "ㅞ", "ㅟ", "ㅠ", "ㅡ", "ㅢ", "ㅣ"]
let jong:[Character] = [" ", "ㄱ", "ㄲ", "ㄳ", "ㄴ", "ㄵ", "ㄶ", "ㄷ", "ㄹ", "ㄺ", "ㄻ", "ㄼ", "ㄽ", "ㄾ", "ㄿ",
                        "ㅀ", "ㅁ", "ㅂ", "ㅄ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ"]
func hangle(c1:Character,c2:Character,c3:Character) -> Character? {
    var cho_i = 0
    var jung_i = 0
    var jong_i = 0
    for i in 0 ..< cho.count {
        if cho[i] == c1 { cho_i = i }
    }
    
    for i in 0 ..< jung.count {
        if jung[i] == c2 { jung_i = i }
    }
    
    for i in 0 ..< jong.count {
        if jong[i] == c3 { jong_i = i }
    }
    
    let uniValue:Int = (cho_i * 21 * 28) + (jung_i * 28) + (jong_i) + 0xAC00;
    if let uni = Unicode.Scalar(uniValue) {
        return Character(uni)
    }
    
    return nil
}

 

정확히 말하면 조금 변경했는데

변환이 안됐을때의 값을 nil값이 나오도록했고, 초성/중성/종성이 담긴 배열은 그냥 밖으로 빼버렸다.

 

분명 코드값 비교해가며 고민하신 소스일텐데 이렇게 공유해주시니 매우 감사할따름

 

 

반응형

47. 콘솔에서 두 정수(a,b)를 입력 받아 a와b가 같으면 1, 같지않으면 0 을 출력하라.

입력 : 1Line 으로 a,b가 공백을 두고 입력된다.

입력 범위 : -2147483648 ~ 2147483647

입력 예시

9 1

출력 예시

0

 

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int flagValue = scan.nextInt();
		if(flagValue== scan.nextInt()) {
			System.out.println(1);
		} else {
			System.out.println(0);
		}
        scan.close();
	}
}

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    let split = line!.split(separator: " ")
    if split.count == 2, let a = Int(split[0]), let b = Int(split[1]) {
        print(String.init(format: "%d", (a==b)))
    }
}

 

 

이전 문제에서 부호만 바꾸었습니다.

https://codeup.kr/problem.php?id=1050

 

[기초-비교연산] 두 정수 입력받아 비교하기2(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용 ��

codeup.kr

 

 

 

 

 

48. 콘솔에서 두 정수(a,b)를 입력 받아 b가 a보다 크거나 같으면1, b가 a보다 작으면 0을 추렭하라

입력 : 1Line 으로 a,b가 공백을 두고 입력된다.

입력 범위 : -2147483648 ~ 2147483647

입력 예시

0 -1

출력 예시

0

 

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int flagValue = scan.nextInt();
		if(flagValue <= scan.nextInt()) {
			System.out.println(1);
		} else {
			System.out.println(0);
		}
        scan.close();
	}
}

 

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    let split = line!.split(separator: " ")
    if split.count == 2, let a = Int(split[0]), let b = Int(split[1]) {
        print(String.init(format: "%d", (a<=b)))
    }
}

 

 

 

이전 문제의 소스에서 부호만 변경했습니다.

https://codeup.kr/problem.php?id=1051

 

[기초-비교연산] 두 정수 입력받아 비교하기3(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용 ��

codeup.kr

 

 

 

 

 

 

 

 

49. 콘솔에서 두 정수(a,b)를 입력 받아 두 값이 다르면 1 같으면 0을 출력하라.

입력 : 1Line 으로 a,b가 공백을 두고 입력된다.

입력 범위 : -2147483648 ~ 2147483647

입력 예시

0 1

출력 예시

1

 

Java

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int flagValue = scan.nextInt();
		if(flagValue != scan.nextInt()) {
			System.out.println(1);
		} else {
			System.out.println(0);
		}
        scan.close();
	}
}

 

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    let split = line!.split(separator: " ")
    if split.count == 2, let a = Int(split[0]), let b = Int(split[1]) {
        print(String.init(format: "%d", (a != b)))
    }
}

 

 

 

 

이전 문제에서 부호만 변경했습니다.

https://codeup.kr/problem.php?id=1052

 

[기초-비교연산] 두 정수 입력받아 비교하기4(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용 ��

codeup.kr

 

 

반응형

44. 콘솔에서 정수 한 개를 입력받아 그 두배를 출력하라.

입력 범위 : -1073741824 ~ 1073741823

입력 예시

1024

출력 예시

2048

Java

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long value = scan.nextInt();
        scan.close();
		System.out.println(value << 1);
	}
}

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    if let value = Int(line!) {
        print(value << 1)
    }
}

 

시프트 연산 오랜만에 하네요.

솔직히 잘 기억도 안납니다.

저는 국딩이 아닙니다. 제 나이때 주변 애들은 전부 정보교육?인가 해서 한참 교과목으로 컴퓨터를 배우던때가 있습니다.

아 그리운 플로피디스크여~

아무튼 그때 교산지 강산지, 선생님의 왈 " 컴퓨터는 덧셈밖에못하는 바보야! "

그리고 시간이 흘러

저의 왈 " 선생님! 바보! "

컴퓨터는 곱셈연산, 그러니까 2진수의 시프트 연산으로 사람이 하는 곱셈과 유사한일을 할 수 있습니다.

주의점은 나열된 1과 0을 그대로 오른쪽 왼쪽으로 움직이는거라 예상치 못한 동작을 하기도합니다.

뭐 이런건 따로 검색해보세요

꽤나 덧셈 뺄셈 곱셈 나눗셈 연산을 재미지게 합니다.

기본적으로 C를 기반으로 작성된 문제이기때문에 이대로 가다보면 매크로연산정의하는 문제도 나오지않을까합니다.

아 그런거 싫은데

https://codeup.kr/problem.php?id=1047

 

[기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용 ��

codeup.kr

 

 

45. 콘솔에서 정수 두 개( a, b )를 입력받아 a 의 2^b 배를 출력하라

입력 : 정수 두 개가 공백을 두고 1line으로 입력된다. ( 입력 범위: a >= 0, b <= 10 )

입력 예시

2 3

출력 예시

16

Java

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int base = scan.nextInt();
		int exp = scan.nextInt();
        scan.close();
		if(base >= 0 && exp <= 10 ) {
			System.out.println(base << exp);
		}
	}
}

 

Swift

import Foundation

let line = readLine()
if line != nil {
    let split = line!.split(separator: " ")
    if split.count == 2, let base = Int(split[0]), let exp = Int(split[1]) {
        if base >= 0 , exp <= 10 {
            print(base << exp)
        }
    }
}

 

 

https://codeup.kr/problem.php?id=1048

 

[기초-비트시프트연산] 한 번에 2의 거듭제곱 배로 출력하기(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용 ��

codeup.kr

 

 

 

46. 콘솔에서 두 정수(a,b)를 입력 받아 a가 b보다 크면 1, 그외 라면 0 을 출력하라.

입력 : 1Line 으로 a,b가 공백을 두고 입력된다.

입력 범위 : -2147483648 ~ 2147483647

입력 예시

9 1

출력 예시

1

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int flagValue = scan.nextInt();
        scan.close();
		if(flagValue > scan.nextInt()) {
			System.out.println(1);
		} else {
			System.out.println(0);
		}
	}
}

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    let split = line!.split(separator: " ")
    if split.count == 2, let a = Int(split[0]), let b = Int(split[1]) {
        print(String.init(format: "%d", (a>b)))
    }
}

 

 

 

bool형 변수는 사실 0 과 1 이다! 라는걸 보여주려는 문제인거같은데

JAVA에서 bool을 바로 정수형으로 보여주기가 어찌해야할지 모르겠어서 결국그냥 1,0을 써서 출력했네요.

swift 는 c베이스로 만들어진거라 바로 bool을 int로 변형이 가능했습니다.

 

https://codeup.kr/problem.php?id=1049

 

[기초-비교연산] 두 정수 입력받아 비교하기1(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용 ��

codeup.kr

 

 

 

 

 

 

 

 

기존 네이버 블로그에 있던내용을 옴기는 작업은 가장 먼저 하려고하다가 중간에 멈추고 미루고 미뤄

어느새 20년도 초여름에 다가왔습니다.;;

 

새롭게 시작했던 키보드만드는것도 어느정도 완결이 보여 뭐할까 고민하다가 

 

다시금 포스트 옴기기의 진행도를 늘려보려합니다.

반응형

아직도 왜 오류가 났는지 모르겠으나

테이블 생성시

id필드에 INTEGER PRIMARY KEY 그리고 AUTO_INCREMENT를 주었다.

 

결과...

생성이 되었는지 안되었는지 아마 안되었기에 뒤부분에서 계속 오류가 발생한거겠지

 

문서좀 뒤져보니 

PRIMARY KEY로 설정된애가 INTERGER일경우 자동으로 auto increment설정이 붙는다고한다

실제로 해당키워드를 지우고 돌려보니 무사히 돌아간다.

 

그리고 insert 문으로 데이터를 넣을시 id값도 무사히 잘 증가되어서 들어간다.

 

이전 그대로 소스를 돌려쓰고있는터라 

왜 이런문제가 발생했는지 아직도 모르겠다.

 

https://www.sqlite.org/autoinc.html

 

SQLite Autoincrement

1. Summary The AUTOINCREMENT keyword imposes extra CPU, memory, disk space, and disk I/O overhead and should be avoided if not strictly needed. It is usually not needed. In SQLite, a column with type INTEGER PRIMARY KEY is an alias for the ROWID (except in

www.sqlite.org

 

 

반응형

어느날 테스트를 하던도중 뭔지 잘모르겠으나

시뮬레이터상에서 화면전환 및 새로고쳐지는 애니메이션이 매우매우매우매우매우매우매우 느리게 보여진다.

뭔가 cpu사용량이 넘치는건가 싶어 다른시뮬레이터들을 전부끄고 하나만 돌려봐도 여전히 사태는 호전되지않는다

 

pc를 재부팅해도 이러한문제는 해결되지않았다.

 

검색도중 이러한글을 발견

https://stackoverflow.com/questions/35398356/how-to-speed-up-the-iphone-simulator-in-xcode/35398507#35398507?newreg=81dbb95772f34189b7f246555a57248e

 

How to speed up the iPhone simulator in Xcode

I'm using Xcode 7.2. When I build/run my app on device, all objects and images move according to the speed I set in the code, everything moves quickly. However, on iPhone simulator in Xcode, everyt...

stackoverflow.com

 

그러하다. 시뮬레이터의 디버그모드에서 

 

slow animation이라는 기능이 켜져있어서 생긴문제

 

아니 문제라기보단 그러한 기능

 

이러한기능이 있는지도 오늘처음알았다.

 

곧 퇴사일이 다가오는데 이러한 기본적인것도 모르고있으니 앞길이 막막하다

 

참고로 기능의 온오프는 아래 사진을 참고해라

 

반응형

2019년 10월 15일에 App Store에서 측정한 수치입니다.

 

최저 iOS 12 타겟으로 잡는다면

총 91% 사용자를 지원할 수 있습니다.

 

작년

iOS11 이상 = 92% 수치와 비교하자면 대부분 iOS12 지원 유저로 변경되었다고 봐도 무방할듯합니다.

 

20년도엔 최저지원 os를  iOS12로 잡고 개발하셔도 무방할거같습니다.

 

자료 소스 - https://developer.apple.com

반응형

'Could not instantiate class named _UITextLayoutView because no class named _UITextLayoutView was found;

라는 오류 메시지가 뜨면서 앱이 튕긴다.

 

https://stackoverflow.com/questions/58657087/after-upgrading-to-xcode-11-2-from-xcode-11-1-app-crashes-due-to-uitextlayoutv

 

After upgrading to Xcode 11.2 from Xcode 11.1, app crashes due to _UITextLayoutView

After upgrading to Xcode 11.2 from Xcode 11.1 app crashes: *** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named

stackoverflow.com

 

에서 해당 문제 상황에 대한 해결책이 제시되었다

 

import UIKit

@objc
class UITextViewWorkaround : NSObject {

    static func executeWorkaround() {
        if #available(iOS 13.2, *) {
        } else {
            let className = "_UITextLayoutView"
            let theClass = objc_getClass(className)
            if theClass == nil {
                let classPair: AnyClass? = objc_allocateClassPair(UIView.self, className, 0)
                objc_registerClassPair(classPair!)
            }
        }
    }

}

 

해당 클래스를 작성한후

 

Appdelegate 에 application( didFinishLaunchingWithOptions ) 항목에서 

executeWorkaround() 를 실행시켜주면 이상없이 동작한다!

 

추가로 xcode 업데이트로 해당문제는 해결될것으로 보인다.

우선은 추가...

반응형

+ Recent posts