iPhone – NSInvalidUnarchiveOperationException: Could not instantiate class named NSLayoutConstraint

I got some following error:

Terminating app due to uncaught
exception ‘NSInvalidUnarchiveOperationException’, reason: ‘Could not instantiate
class named NSLayoutConstraint’

but It’s simple.

you can fix it as following solution.

By default, when you create a new iOS project in Xcode 4.5, your storyboard or XIB is set to use Autolayout, which is a new feature in iOS 6.0. The NSLayoutConstraint class is part of the Autolayout system, and it doesn’t exist in older versions of iOS.

If you want to deploy your app to an older version of iOS, you need to change your storyboard or XIB to not use Autolayout. It’s a checkbox in the File Inspector:

I refer to the stack overflow.
http://stackoverflow.com/questions/13201586/nsinvalidunarchiveoperationexception-could-not-instantiate-class-named-nslayout

Emacs – slime + swank UTF8 미지원으로 인한 문제

ref : http://stackoverflow.com/questions/3101279/how-do-i-use-unicode-utf-8-characters-in-clojure-regular-expressions

일반적으로 English Character가 아닌 것은 emacs + slime + swank에서 작동을 하지 않습니다.

이는 UTF-8이 아닌 다른 것을 지원하므로 아래와 같은 2가지 방법으로 해결할 수 있습니다.

Question:
How do I set emacs/slime/swank to use UTF-8 when talking with Clojure, or use UTF-8 at the command-line REPL?

A more interactive way:
[code]
1. M-x customize-group
2. “slime-lisp”
3. Find the option for slime coding system, and select utf-8-unix. Save this so Emacs picks it up in your next session.

[/code]

Or place this in your .emacs:
[code]
(custom-set-variables ‘(slime-net-coding-system (quote utf-8-unix)))
[/code]

Update Instagallry

created_time가 나타내는 것은 촬영한 시간으로 밀리세컨드로 나타낸다.

현 시점으로 지나간 시간을 구하기 위해서는

현재 시간을 구하여 (System.currentTimeMillis() 메소드를 이용하여)

나타내고자 하는 단위로 나눠주면 된다.

1 second = 1000 milliseconds

변경되어야 하는 소스
– Detail
– Grid
– SearchTag

1개 이상 클래스에서 사용되므로 공통 메서드를 만든다.
Input : milliseconds
Output : it’s Time which created picture.

iPhone – 예전 디바이스에서 최신 API를 사용하는 몇 가지 방법

출처 : http://lambert.tistory.com/569

새로운 C 상수를 확인하는 법

[sourcecode language=”ObjC”]
if (&UIKeyboardFrameBeginUserInfoKey != NULL)
{
// 이제 상수를 사용하면 된다.
}
[/sourcecode]

UIKeyboardFrameBeginUserInfoKey는 NSString *const(포인터)로 정의되어 있다. 이 상수의 값은 메모리 주소를 확인하여 현재 OS에서 사용가능한지 확인할 수 있다. 예전 OS에서는 NULL을 반환할 것이다.

새로운 C 함수를 확인하는 법

[sourcecode language=”ObjC”]
if (UISomeNewMethod != NULL)
{
// 함수 호출
UISomeNewMethod();
}
[/sourcecode]

위의 상수 확인 방법과 유사하다.

클래스의 새로운 메서드 확인하는 법

[sourcecode language=”ObjC”]
SEL sel = @selector(scale);
if ([UIScreen instancesRespondToSelector:sel])
{
// scale 이용 가능.
}
[/sourcecode]

클래스를 확인하는 법

[sourcecode language=”ObjC”]
Class kvsClass = NSClassFromString(@"NSUbiquitousKeyValueStore");
if (kvsClass)
{
// iCloud class 이용 가능
}
[/sourcecode]

iPhone – 기억속에서 살아져버린 Bookmark 기능..

요즘 안드로이드 프로젝트, 학교 및 자격증 시험 보느라 바쁘게 Objective-C (이하 X-Code toolkit) 사용을 하지 못했습니다.

Account+ Password & Manager를 사용하신 분들께는 매우 죄송합니다. (아직 버그가 존재하나 버그를 고치지 못하고 Version Upgrade를 진행 중 입니다. 기존에는 Site Account만 관리 되던 것을 지금은 Account에 관련된 모든 정보를 입력 할 수 있도록 반자동적? 사용자가 원하는 필드를 넣을 수 있고 기존에 정해진 Format (ex, 계좌 등 자동차 라이센스)으로도 등록 할 수 있습니다.

업그래이드 될려면 대략 2달정도는 더 걸릴 듯 합니다. 개발은 이미 완료단계에 있으나 테스트 및 이전 Data Structure와 현재가 매우 상이하기때문에 데이터 이전 작업이 생겨버렸네요. ㅠ.ㅠ

아 전혀 포스팅 제목과 관련되지 않은 이야기를 내놓은거 같습니다.

참으로 오랜만에 XCode(4.3.2) 사용하니 북마크 기능을 찾을 수 없었습니다. Google God에게 물어보니 그 기능에 대해서는 살아져버린거 갔더라구요. 결국에는 Bookmark기능은 아니지만 Bookmark기능과 유사하게 사용 할 수 있는 방법을 찾아냈습니다.

아래는 Bookmark 대용으로 사용할 수 있는 방법을 소개합니다.
[code]
#pragma message "<# message #>"
[/code]
OR
[code]
#warning <# message #>
[/code]
코드 안에 위와 같은 코드를 삽입하여 Bookmark 또는 TODO 용도로 사용이 가능합니다.
Bookmark리스트를 확인하기 위해서는 우측 상단 사용할 수 있겠습니다.
[사진 참조]

이 방법은 Compile 과정에서도 확인이 가능합니다.

아래와 같이 단축키를 제공합니다.
Navigate to next
[code]Cmd-‘[/code]
previous
[code]Cmd-Shift-‘[/code]

겨울이 지나고 봄이 왔나요? 날씨가 너무 좋네요.

iPhone – Redirecting NSLog to a log file

refer to this article

[sourcecode language=”objc”]
– (void)redirectNSLogToDocumentFolder{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];
NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
}
[/sourcecode]

iPhone – UITableView Selection Problem

1.

if you want to select rows while in edit mode,
you need to set the allowsSelectionDuringEditing property of the tableview to YES.
so then it will call didSelectRowAtIndexPath message.

2.

if you seted-up selectionStyle that is UITableViewCellSelectionStyleNone,
it still cause the UI to call didSelectRowAtIndexPath when touched by the user.
To avoid this, you need to set the userInteractionEnable property of the tableViewCell instance to NO.