ios 2013.02.05 16:12

Inferis/ViewDeck

iOS facebook의 좌측을 swipe하면 나타나는 메뉴에 대한 오픈소스

https://github.com/Inferis/ViewDeck


신고

'ios' 카테고리의 다른 글

Inferis/ViewDeck  (0) 2013.02.05
itunes carrier testing mode  (0) 2013.01.26
Strong, Weak, ARC(Automatic Reference Counting)  (0) 2013.01.17
Storyboard  (0) 2013.01.17
ios 2013.01.26 13:36

itunes carrier testing mode

를 빙자한 아이폰 캐리어 모양 쉽게 바꾸기

mac: defaults write com.apple.iTunes carrier-testing -bool YES

을 한 다음 아이튠즈에서 업데이트를 option-click하고 준비한 ipcc를 덮어씌운다

windows: "%ProgramFiles%\iTunes\iTunes.exe" /setPrefInt carrier-testing 1

이하 동문

신고

'ios' 카테고리의 다른 글

Inferis/ViewDeck  (0) 2013.02.05
itunes carrier testing mode  (0) 2013.01.26
Strong, Weak, ARC(Automatic Reference Counting)  (0) 2013.01.17
Storyboard  (0) 2013.01.17
ios 2013.01.17 17:28

Strong, Weak, ARC(Automatic Reference Counting)

1. 프로퍼티로 변수 선언할때, weak 나 strong 로 선택할수 있는데, 어떤때에는 weak로 선언하고, 어떤때에는 strong로 선언해야 하는지 감이 잘 안잡힙니다.
-> 정답 없습니다.다만 중요한 사실은 이렇습니다. strong으로 reference 되는 object는 메모리에서 해제되는것이 허락되지 않습니다. 이 reference에 nil이 대입되기 전까지는요. weak reference되는 object는 그거랑 상관없이 다른데서 다른 이유로 메모리에서 해제될 수 있습니다. 이때 weak reference 하던 property에는 자동으로 nil이 대입됩니다.

2. @synthesize를 선언하면 해당 getter가 자동으로 생성되는데, 코드에 다시 getter method를 작성해줘야 하는건가요? alloc를 해주기 위함인지. 항상 해줘야 하는지, 어떨때 재작성을 하는것인지 궁금합니다.
-> setter와 getter를 별도로 구현해 주지 않으면 내부적으로 자동 구현된다는 뜻입니다. 데모에서 @synthesize 선언 해두고 getter를 다시 구현하는 경우는 대부분 이런 경우 입니다.

“getter가 호출되는 시점에 할당된 object가 없으면 내부적으로 한번 할당 해 준다. 이것은 다음 nil이 assign 될때까지 두번 할당 되지 않는다. 이렇게 해 두면 실제 사용되려는 시점까지 불필요한 object 할당, 즉 메모리 할당,을 미룰수가 있다.” 이런 전략때문이지 반드시 이렇게 해야되는것은 아닙니다.

3. 위의 질문과도 연관이 있는데, strong로 선언하면 alloc를 우선적으로 해주고 사용해야 하나요?
storyboard에서 컨트롤을 올려서 IBOulet로 연결된 프로퍼티 변수는 alloc를 안해도 되나요?
-> alloc을 우선적으로 해준다는 말씀이 잘 이해되지 않습니다만, 데모에서 getter에서 처음한번 object 만들어주는것을 말씀하신다면, 위에 답변 드렸듯이, 다른 의도가 있어서 그런것이지 이런과정 없이도 사용하실 수 있습니다만 본인의 의도에 달려있습니다. 예를들면,

@property (nonatomic, strong) MyClass *myObject;

@synthesize myObject;

위와 같이 해 두시면 myObject에 MyClass * object를 assign했다가 nil을 하는것은 전적으로 프로그램 코드에 책임이 있습니다. 내부적으로 getter와 setter가 구현되어 assign 될떄 strong reference 했다가 nil assign할때 strong reference 푸는 작업이 자동으로 일어납니다.

Storyboard에서 IBOutlet으로 연결한 property들은 자세히 보시면 weak attribute이 지정되어 있는것을 아실 수 있습니다. Storyboard에서 strong reference처리를 해 두기 때문에 굳이 UIViewController object에서 strong reference를 한번 더 할 필요는 없습니다.

말이 뱅글뱅글 돌아 점점 어려워 지지만 정리하자면 아래와 같은 내용을 명확히 이해 하시면 되겠네요
- Objective-C @property의 strong 과 weak attribute의 차이점: memory 해제 여부와 관련있음
- @synthesize keyword는 @property attribute에 따라 자동으로 setter/getter를 만들어준다
- @synthesize가 자동으로 만들어주는 getter나 setter 대신 추가적인 일을 더 해주고 싶다면 getter나 setter를 추가적으로 구현해도 된다. 특히 getter를 구현하는것은 valve에 해당하는 시점이기 때문에 단순히 object 를 읽어가는것 이외의 추가적인 작업을 하기에 좋은 타이밍이다.

http://www.iosappdev.co.kr/?p=1077


신고

'ios' 카테고리의 다른 글

Inferis/ViewDeck  (0) 2013.02.05
itunes carrier testing mode  (0) 2013.01.26
Strong, Weak, ARC(Automatic Reference Counting)  (0) 2013.01.17
Storyboard  (0) 2013.01.17
ios 2013.01.17 16:03

Storyboard

ios개발을 안 하게 된지 몇년 되어서 메소드마저 가물가물거렸다.

아는 사람에게 요즘 interface builder 어떠냐고 물어봤는데(내가 한창 ios를 하던 시절에 interface builder는 도움이 되기보단 짜증만 나게 하는 경우가 많아서 난 모든 컨트롤을 하드코딩해서 추가하는 식으로 프로그래밍 했었다), 잘 모르겠지만 요즘은 storyboard 란 기능을 쓴다는 답변이 돌아왔다. 격세지감과 공부해야겠단 생각이 들어서 찾아봤는데, 이런 기능이란다. 아무래도 이젠 interface builder와 친해질 시기가 된 것 같다.

http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2

http://pinkyroman.tistory.com/4


신고

'ios' 카테고리의 다른 글

Inferis/ViewDeck  (0) 2013.02.05
itunes carrier testing mode  (0) 2013.01.26
Strong, Weak, ARC(Automatic Reference Counting)  (0) 2013.01.17
Storyboard  (0) 2013.01.17