레이블이 xcode4인 게시물을 표시합니다. 모든 게시물 표시
레이블이 xcode4인 게시물을 표시합니다. 모든 게시물 표시

2011년 11월 13일 일요일

XCode 4.2에서 4.0시뮬레이터 사용하기

OSX 라이온 업그레이드와 함께 XCode 4.2로 업그레이드 되었다.
기존에 사용하던 프로젝트 컴파일 배포는 문제가 없긴 하지만

왠지 4.3이사만 Deployment타겟이 되는게 맘에 들지 않았다.


라이온으로 OS를 변경하고 XCode를 새로 설치해서 당연히 SDK버젼이 높아 졌지만
하위 버젼을 빌드 해야 할경우도 있을듯 하다.

XCode -> Preference -> Download

여기서 3.0 4.0 디바이스를 설치한다.

덤으로 Documentation에서 5.0 도큐먼트도 로컬에 받아두는게 좋을듯


참고 XCode 4.2에서 Storyboard로 프로젝트를 생성하면 iOS5.0에서만 동작한다.

3.x, 4.x를 지원하는 앱을 만들려면 Storyboard를 언체크 해서 기존 xib파일로 
생성해야 할듯 하다.


2011년 11월 4일 금요일

xcode4 tip __MyCompanyName__ 바꾸기

xcode 3버젼에서 하던 방법으로 되지 않는다.

xcode4에서는 계정에 주소록을 가져다가 쓰는것으로 보인다.

시스템환경설정->사용자및 그룹->주소록카드 (열기)
이렇게 해서 주소록을 연다음
하단에 편집
회사를 체크 하여 회사이름을 설정한다.

이렇게 설정을 하고 xcode에서
프로젝트를 생성하면..



//  Created by  on 11. 11. 4..
//  Copyright (c) 2011년 SPARROWAPPS. All rights reserved.

이러한 주석이 자동으로 생성됨을 볼수 있다.
그런데 이건 사용자 이름이 사라지고 회사 이름만 생겼다.

이전에는 
//  Created by 최준호 on 11. 10. 31..
//  Copyright (c) 2011년 __MyCompanyName__. All rights reserved.

머 반즘 성공한 방법이다.
이름이 사라지고 회사이름이 제대로 나오고...
머 그리 중요한건 아닌데...

Mac 용 어플리케이션을 개발하다가

- (void)aboutMenu:(id)sender
{
[NSApp activateIgnoringOtherApps:YES];
[NSApp orderFrontStandardAboutPanel:sender];
}

위와 같은코드로 About창을 생성했을때
Credits.rtf파일로 개발자 등을 설정 할수 있는데.

이상하게 회사이름은 MyCompanyName으로 나온다.

이건 어찌 바꾸는지 모르겟음.



2011년 7월 4일 월요일

xcode4 tip: svn 사용하기

기본적으로 xcode4에서 프로젝트를 생성하면 git와 연동이되고
자동으로 리포지토리에 등록이 되서 코드 수정시 마다 변경 이력이 자동으로 되는거 같기도 하다.

근데 잘 모르겠다.

git도 모르겠다.

svn osx 10.6에 기본으로 세팅되어 있으니

# sudo svnadmin create /Users/계정/svnroot
이렇게 입력하고 여기를 리포지토리로 등록하면
이후 프로젝트들을 관리 할 수 있다.

xcode4실행후

file -> Source Control -> Repositories
또는 xocde에서 Organizer를 수행해서 Repositores를 선택한다.
+를 눌러 새로운 리포지토리를 등록한다.

위에서 만든 svnroot의 접근 경로를
file:///Users/계정/svnroot라고 해준다.

그리고 이미 만들어진 프로젝트를 import한다.

다른 경로에 chekout을 하고 거기에 프로젝트 파일을 열어본다.
이후 부터는 버젼 컨트롤이 이루어지고 xcode에서 수정하면 M아이콘과
File -> Source Control -> 메뉴들이 활성 된다.

2011년 7월 1일 금요일

Xcode4 tip -- 도움말 내려 받기

머 그냥 도움말이 나오길래 머 그냥 그냥 썻는데 솔직히 좀 느렸다.
이유가 먼지 몰랐다.

이유인즉 도움말이 기본적으로 Xcode4설치 했다고 설치되는게 아니다.

XCode>Preferences..> Documents탭
Check for and istall updates automatically 를 체크 하고
옆에 Check and Install Now 버튼을 눌러주면
여러번 계정 password확인을 하고
각각의 항목을 Getting...... (내려 받는다.)

이후로는 도움말이 네트워크를 사용하지 않고 로컬에서 쾌적하게 바로바로 찾아진다.

Xcode4 tip -- NSZombiEnabled

Product -> Edit Scheme ->
Run Debug에서 Arguments 탭을 선택
Environment Variables에
NSZombieEnabled 를 추가하고 Value에 YES 를 넣어준다.

객체 release를 했을때 release를 하지 않고 다시 참조 하려고 하는 코드를
디버그 창에 출력 해준다.


앱이 비정상 종료를 할때 NSZombie를 사용했더니 다음과 같은 메세지가 출력됬다.


*** -[UIImage isKindOfClass:]: message sent to deallocated instance

구글링을 하니..



Sounds like you're over-releasing your image objects. Like all the Cocoa collection classes, an NSMutableArray instance retains objects added to it and releases them when it is itself released. If you create an object using a call that doesn't increase its retain count and then release it once you've added it to the array, you'll see this sort of error.
For example:
UIImage *image = [UIImage imageWithData:someData];
[myArray addObject:image];
[image release]; // <-- BAD!
Here you don't own the object image (because you didn't create it using alloc or copy), so you don't need to release it. The pointer in the array now points to an object with a retain count of zero, which will eventually be deallocated.
Using autorelease instead of release in the above example is equally wrong, for the same reason.

답은 imageWithData:someData처럼 머 UIImage가 alloc한게 아니기 때문에 release나 autorelease모두 문제가 된다는 것이다.
덕분에 잘 해결 했다.