아이폰어플개발정보2010. 6. 24. 11:37
이미지를 이미지 라이브러리에 저장하는 방법

by alex 12. 5월 2009 15:28


-(void)savePictureToLibrary{   

    UIImage *img = [[UIImage imageNamed:@"image.png"];

    UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), self);

}

 
 
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{

    NSString *str = @"Saved!!!";

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Saved." message:str delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];

    [alert show];

}



출처 : http://blog.naver.com/PostView.nhn?blogId=amoros21&logNo=140107111195
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:36
NSDictionary 쓰고 읽는 방법

by nik 13. 5월 2009 13:49

// you should add empty file "hiscores" in your xCode project

 - (void)save{

 NSLog(@"saving...");

  NSDictionary *hiscores;

 //adding object and keys;

 //...

 //...

 NSString *writableFilePath = [self createEditableCopyOfFileIfNeeded:[NSString stringWithString:@"hiscores"]]; 

 if (![hiscores writeToFile:writableFilePath atomically:YES]){

  NSLog(@"WRITE ERROR");

 }

 }

- (void)load{

 NSLog(@"loading...");

 NSString *writableFilePath = [self createEditableCopyOfFileIfNeeded:[NSString stringWithString:@"hiscores"]];

 hiscores = [NSDictionary arrayWithContentsOfFile:writableFilePath];

}

- (NSString *)createEditableCopyOfFileIfNeeded:(NSString *)_filename {

    // First, test for existence.

    BOOL success;

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSError *error;

 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *writableFilePath = [documentsDirectory stringByAppendingPathComponent: _filename ];

 
    success = [fileManager fileExistsAtPath:writableFilePath];

    if (success) return writableFilePath;

 
 // The writable file does not exist, so copy the default to the appropriate location.

 NSString *defaultFilePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: _filename ];

    success = [fileManager copyItemAtPath:defaultFilePath toPath:writableFilePath error:&error];

    if (!success) {

  NSLog([error localizedDescription]);

        NSAssert1(0, @"Failed to create writable file with message '%@'.", [error localizedDescription]);

    }

 return writableFilePath;

}



출처 : http://blog.naver.com/PostView.nhn?blogId=amoros21&logNo=140107111174
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:36
UIImage 를 NSData로 변환하는 방법

by alex 2. 6월 2009 14:34


UIImage *img = [UIImage imageNamed:@"test.png"];

NSData *dataObj = UIImageJPEGRepresentation(img, 1.0);



출처 : http://blog.naver.com/PostView.nhn?blogId=amoros21&logNo=140107111124

'아이폰어플개발정보' 카테고리의 다른 글

NSDictionary 쓰고 읽는 방법  (0) 2010.06.24
openGL texture 만들기  (0) 2010.06.24
UIImage 를 NSData로 변환하는 방법  (0) 2010.06.24
아이폰에서 IP주소 알아내기  (0) 2010.06.24
Print CGRect  (0) 2010.06.24
흔드는거 감지하기  (0) 2010.06.24
Posted by 오늘마감

댓글을 달아 주세요

아이폰기본사용2010. 6. 21. 23:54
탈옥후, PC에서 아이폰 원격제어 방법
PC에서 iPhone 제어에는
iPhone 에서는 Veency, PC에서는 Ultra VNC가 필요합니다.




iPhone에서 Veency 설치 방법은 아래와 같습니다.
[1] Cydia 로 들어간다
[2] 화면 아래쪽에서 Search 메뉴를 선택하세요
[3] "Package Names & Descriptions" 가 써있는 입력란에 Veency라고 입력하고 Search 버튼을 누릅니다.
[4] 검색결과에서 Veency를 선택하면 나오는 화면에서 Install 버튼 터치 -> Confirm 버튼 터치
[5] 조금만 기다리면 설치가 완료됩니다.




PC에서 Ultra VNC를 설치하는 방법은 다음과 같습니다.
[1] Ultra VNC 를 다운로드 받습니다.
(프리웨어이며, 네이버에서 검색하면 쉽게 다운로드 받을 수 있습니다.)
[2] 다운로드받은 파일을 설치합니다.
     딱히 설정해 줄 옵션은 없으므로 그냥 Next > Next... 이런식으로 설치하시면 됩니다.


PC에서 iPhone을 원격 제어하기 전에 다음의 사항들을 확인해 주세요
[1] iPhone이 해킹이 되어 있는지
[2] 와이파이(인터넷 연결)이 활성화 되어 있는지
[3] iPhone에 Veency를 설치 했는지.


PC에서 iPhone 원격 제어 방법은 아래와 같습니다.
[1] iPhone 설정에 들어가서
[2] Wi-Fi 선택
[3] 현재 연결된 wi-fi 네트워크에서 > 버튼을 터치
[4] IP 주소를 확인할 수 있습니다. 여기 나온 아이피 주소를 알아두세요.
[5] PC에서 UltraVNC Viewer를 실행합니다.
[6] VNC Server : 입력란에 방금전 알아두었던 아이폰의 아이피 주소를 입력해주세요
     (예 : 192.158.46.24:5900) <= 포트번호는 이대로 적어주세요.
[7] Ultra VNC Viewer에서 Connect 버튼을 누릅니다.
[8] iPhone에 Remote Access Request 창이 뜰 것입니다. Accept를 눌러주세요
[9] PC 화면에 iPhone 창이 뜹니다. PC의 아이폰 화면에서 드래그를 해보면 아이폰에서 똑같이 움직이게 됩니다.
[10] iPhone 원격제어 완료입니다


출처 : http://blog.naver.com/PostView.nhn?blogId=dandyher&logNo=150087035850
Posted by 오늘마감

댓글을 달아 주세요

아이폰기본사용2010. 6. 21. 23:53
각종 도메인을 쉽게 넣는 방법
Domain Sufix



사파리의 URL 창에서 웹싸이트 주소를 쓰고 난뒤에 .com이 아닌 다른 종류의 sufix를 가진 웹싸이트라면 일일이 다 타자를 쳤을것이다.
그러나 이제는 그렇게 하지 말고,조금 편한 방법을 택해보자.


출처 : http://blog.naver.com/PostView.nhn?blogId=dandyher&logNo=150086479844
Posted by 오늘마감

댓글을 달아 주세요

아이폰기본사용2010. 6. 21. 23:53
개별 메일 지우는 쉬운 방법
 메일 지우는 방법

메일을 지우는 방법을 대부분 알지만, 또하나의 숨은 기능이 있다.
우선 기본적으로 대부분 유저들이 사용하는 방법은 우측 상단의 Edit 버튼을 누르고 지우고 싶은 메일들을 선택한 후에 왼쪽 하단에 Delete 버튼을 누르는 방법일것이다. 또하나의 방법은 단 하나의 메일만을 지울때 아주 유용하게 사용되어 질 수 있다. 지우고 싶은 이메일을 오른쪽으로 슬라이드 하면 Delete 버튼이 지우고 싶은 이멜일 우측에 나타난다. 그리고 그 Delete 버튼을 누르면 끝~! (요건 나도 최근에 안 사실 ^^)


출처 : http://blog.naver.com/PostView.nhn?blogId=dandyher&logNo=150086479669
Posted by 오늘마감

댓글을 달아 주세요

XCODE2010. 6. 21. 18:28
OSX 화면 캡쳐 방법
- 전체화면 캡쳐 : Shift + Command + (클립보드 복사할 땐, Ctrl)3

- 선택영역 캡쳐 : Shift + Command + 4 + (클립보드 복사할 땐, Ctrl)캡쳐 영역 드래그

- 선택윈도우 캡쳐 : Shift + Command + 4 + (클립보드 복사할 땐, Ctrl)Spacebar 후에 카메라가 생기면 클릭
캡쳐된 후에 바탕화면(~/Desktop)에 저장되는 파일들은 png포맷으로 저장되는데 포맷을 변경하고자 할 때에는 응용 프로그램에 있는 터미널을 실행시키고 아래와 같은 명령어 입력후 로그아웃/로그인을 하면 된다.
터미날에서 defaults write com.apple.screencapture type jpg 하면 jpg형식으로 저장됩니다
포맷형식으로는 jpg와 gif, 물론 pdf포맷도 지원한다.


출처 : http://blog.naver.com/PostView.nhn?blogId=mewizard&logNo=20065570577
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 21. 09:32
[펌] 아이폰 프로그래밍에서 객체의 직렬화 방법
아이폰객체의직렬화방법


아이폰프로그래밍으로객체를저장하거나(파일로혹은DB) 네트워크로보내거나할려면다른플랫폼과마찬가지로직렬화(Serialization) 과정을거쳐야합니다

코코아프레임웍에서는직렬화를위해오브젝트를엔코딩/디코딩해주는편리한클래스를제공하고있는데아이폰에서사용가능한놈은 NSCoder를상속받은 NSKeyedArchiver NSKeyedUnarchiver입니다(아이폰에서 NSArchiver는사용불가니주의)


그럼간단한사용방법을보도록하죠


먼저 NSString 오브젝트를 NSData타입으로직렬화해보도록하겠습니다


엔코딩

NSString *str = @"블라블라블라";

NSData *data = [NSKeyedArchiverarchivedDataWithRootObject:str];



디코딩

NSString *str2 = [NSKeyedUnarchiver unarchiveObjectWithData:data];


이렇게 됩니다. 참간단하죠? 하지만 주의해야할 점이 있습니다. NSKeyedArchiver 인코딩/디코딩 가능한 오브젝트는 반드시 NSCoding프로토콜 불러오고 object내부에   -initWithCoder, -encodeWithCoder 메소드를 구현해줘야합니다. NSCoder 이게 없으면 오브젝트를 어떻게 인코딩/디코딩할지 못알아 먹겠죠..


일단 자주 쓰는 데이터 저장을 위한 대부분의 클래스들은 NSCoding 지원하고 있으니 특별히 손대줄 필요가 없습니다.(NSString , NSDictionary, NSArray... 등등등)



그럼다양한데이터를가진직접만든 Object를가지고해보도록하겠습니다.


UserObject.h


@interface UserObject : NSObject <NSCoding> {   //NSCoding 프로토콜을채용

NSString *str;

int int1;

double double1;

UIImage *img;

}

@property구현



이렇게 NSString 객체,UIImage객체 , 정수형,실수형 데이터를 가진 오브젝트 입니다. 그럼 본격적으로   -initWithCoder, -encodeWithCoder 구현을 해보겠습니다. 메소드의 구현은 NSDictionary등에서 익숙현 키벨류 방식으로 만들어 주면 됩니다.


UserObject.m


//먼저인코딩메소드입니다.

-(void) encodeWithCoder:(NSCoder*) coder{

@"string"];  
[coder encodeDouble:double1 forKey:@"double"]; // object 이외의 실수형이나 정수형 데이터는 각각에 맞는 엔코딩/디코딩 메소드를 가지고 있습니다
encodeInt:int1 forKey:@"int"];
안타깝게 UIImage 클래스 레퍼런스를 확인하면 NSCoding 지원하지 않습니다. 그렇기 때문에 이와같이 하면 에러가 납니다. 그렇게 때문에 UIImagePNGRepresentation메소드를 이용해서 UIImage 이미지를 NSData타입으로 바꾼다음에 집어넣으면 됩니다.
[coder encodeObject:UIImagePNGRepresentation(img) forKey:@"img"];

}


//그다음디코딩메소드입니다. 짝을맞춰줍시다.


-(id) initWithCoder:(NSCoder *)decoder{

if(self = [superinit]{

self.str = [decoder decodeObjectForKey:@"string"];

self.double1 = [decoder decodeDoubletForKey:@"double"];

self.int1 = [decoder decodeIntForKey:@"int1"];

self.img = [UIImageimageWithData:[decoder decodeObjectForKey:@"img"]];

}

;

}

이런식으로아무리복잡한데이터형태의오브젝트라도엔코딩/디코딩메소드만구현해주면쉽게직렬화가됩니다. 이상입니다~

http://cafe.naver.com/mcbugi/17649



출처 : http://blog.naver.com/PostView.nhn?blogId=seogi1004&logNo=110087700353
Posted by 오늘마감

댓글을 달아 주세요