계산기 소스

컴퓨터/아이폰 : 2012. 1. 18. 11:18


//  Calculator.h

#import <Foundation/NSObject.h>

// MVC : M (Model)


@interface Calculator : NSObject {

int su;

int value;

char bubo;

}

@property int su, value;

@property char bubo;

@end


//

//  Calculator.m


#import "Calculator.h"


@implementation Calculator

@synthesize su, value, bubo;

@end


//

//  CalculatorManager.h


#import <Foundation/NSObject.h>


@class Calculator;

@interface CalculatorManager : NSObject {


Calculator *calc;

int resultInt;

float resultFloat;

}


-(id) init;

-(void) dealloc;

-(void) setSu:(int)su andValue:(int)value;

-(void) performOperation:(char)buho;

-(void) disp;

@end



//

//  CalculatorManager.m


#import "CalculatorManager.h"

#import "Calculator.h"


@implementation CalculatorManager


-(id) init{

self = [super init];

if(self){

calc =[[Calculator allocinit];

}

return self;

}


-(void) setSu:(int)su andValue:(int)value // 10 20

{

[calc setSu:su];

[calc setValue:value];

}


-(void) performOperation:(char)buho // +

{

[calc setBubo:buho];

switch ([calc bubo]) { // calc.buho

case '+':

resultInt = [calc su] + [calc value];

break;

case '-':

resultInt = [calc su] - [calc value];

break;

case '*':

resultInt = calc.su * calc.value;

break;

case '/':

resultFloat = (float)[calc su] / [calc value];

break;

}

}


-(void) disp

{

if(calc.bubo == '/'){

if (calc.value == 0) {

NSLog(@"0으로 나눌수 없습니다.");

}else {

NSLog(@"%i %c %i"calc.sucalc.bubocalc.value);

NSLog(@"연산결과 : %i"resultFloat);

}

}else {

NSLog(@"%i %c %i"calc.sucalc.bubocalc.value);

NSLog(@"연산결과 : %i"resultInt);

}


}


-(void) dealloc{

[calc release];

[super dealloc];

}


@end


///////////////////////




#import "CalculatorManager.h"


int main (int argc, const char * argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool allocinit];


int su, value;

char buho;

NSLog(@"input su:");

scanf("%d", &su);

NSLog(@"input buho:");

scanf("%*c %c", &buho);

NSLog(@"input value:");

scanf("%d", &value);

CalculatorManager *manager = [[CalculatorManager allocinit];

[manager setSu:su andValue:value];

[manager performOperation:buho];

[manager disp];

[manager release];  

    [pool drain];

    return 0;

}



2011-05-26 11:42:54.436 test56[485:a0f] input su:

10

2011-05-26 11:42:56.429 test56[485:a0f] input buho:

+

2011-05-26 11:42:57.253 test56[485:a0f] input value:

20

2011-05-26 11:42:57.854 test56[485:a0f] 10 + 20

2011-05-26 11:42:57.855 test56[485:a0f] 연산결과 : 30

[출처] test56 [계산기]|작성자 바우만

'컴퓨터 > 아이폰' 카테고리의 다른 글

화면 이동시 에니메이션 효과  (0) 2012.01.18
두개 클래스 사용 예제 소스  (0) 2012.01.18
날짜 -> 시간 시간->날짜 변환  (0) 2012.01.18
파일 관련 자료  (0) 2012.01.18
sqlite에 관한거..  (0) 2012.01.17
      
Posted by k_ben


#import <Foundation/NSObject.h>

#import <Foundation/NSAutoreleasePool.h>

#import <Foundation/NSDate.h>


int main (int argc, const char * argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool allocinit];


NSDate *date = [NSDate date];

int timestamp = [date timeIntervalSince1970]; // 날짜를 시간으로 환산

NSLog(@"%lu", timestamp); 

NSDate *today = [NSDate dateWithTimeIntervalSince1970:timestamp]; // 시간을 날짜로 환산

NSLog(@"%@", today);

    [pool drain];

    return 0;

}



2011-05-27 10:45:54.531 test64[668:a0f] 1306460754

2011-05-27 10:45:54.607 test64[668:a0f] 2011-05-27 10:45:54 +0900

'컴퓨터 > 아이폰' 카테고리의 다른 글

두개 클래스 사용 예제 소스  (0) 2012.01.18
계산기 소스  (0) 2012.01.18
파일 관련 자료  (0) 2012.01.18
sqlite에 관한거..  (0) 2012.01.17
페이지 넘기는 효과  (0) 2011.12.15
      
Posted by k_ben


#import <Foundation/NSAutoreleasePool.h>

#import <Foundation/NSString.h>

#import <Foundation/NSDictionary.h>

#import <Foundation/NSFileManager.h>


int main (int argc, const char * argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool allocinit];


    NSFileManager *fm = [NSFileManager defaultManager];

//모든 파일은 NSFileManager에서 관리한다..

NSString *fName = @"/objective_workspace/test77/test77.m";

// 파일명은 경로와 함께..

if([fm fileExistsAtPath:fName] == NO)

{

NSLog(@"파일이 존재 하지 않습니다.");

return 0;

}else

{

NSLog(@"파일이 존재합니다");

}

if([fm isReadableFileAtPath:fName] == NO)

{

NSLog(@"파일이 읽기 불가능.");

return 0;

}else

{

NSLog(@"파일이 읽기 가능합니다.");

}

if ([fm isWritableFileAtPath:fName] == NO) {

NSLog(@"파일 쓰기 불가능");

return 0;

}else {

NSLog(@"파일 쓰기 가능합니다.");

}


//[fm fileAttributesAtPath:fName traverseLink:YES]; // 예전 메소드 

//'fileAttributesAtPath:traverseLink:' is deprecated 라고 경고가 나온다

// 메소드가 업데이트 됐다는 경고..  

// API 검색하면 업데이트된 메소드를 보여준다..

// fileAttributesAtPath ====>  attributesOfItemAtPath  

NSDictionary *attr = [fm attributesOfItemAtPath:fName error:nil];

// 파일의 속성이 NSDictionary 형태로 나오므로 key값을 통해 속성을 찾을수 있다..

if(attr != nil){

NSLog(@"파일 사이즈 %i byte", [[attr objectForKey:NSFileSize]intValue]);

NSLog(@"작성자 : %@", [attr objectForKey:NSFileOwnerAccountName]);

NSLog(@"작성일 : %@", [attr objectForKey:NSFileModificationDate]);

}

[pool drain];

    return 0;

}

'컴퓨터 > 아이폰' 카테고리의 다른 글

계산기 소스  (0) 2012.01.18
날짜 -> 시간 시간->날짜 변환  (0) 2012.01.18
sqlite에 관한거..  (0) 2012.01.17
페이지 넘기는 효과  (0) 2011.12.15
Gesture 인식 샘플  (0) 2011.12.15
      
Posted by k_ben


2. SQLite Classes [Bottom] [Top]


  • namespace SQLITE
    • class Connection
    • class IResultset
      • class Recordset
      • class Dataset
    • class Command
    • class Parameter
    • class Column
    • class DatabaseDesc

    • class TableDesc

3. SQLite C/C++ Interface [Bottom] [Top]

C/C++ API Reference 문서에서 Experimental("(exp)" 표기), Deprecated("(obs)" 표기) 로 표시된 항목은 제외하고 공식(Stable) 인터페이스만 정리한다.

3.1. Objects [Bottom] [Top]

  • 객체

    설명

    sqlite3

    DB 연결 핸들

    sqlite3_blob

    sqlite3_context

    sqlite3_file

    sqlite3_int64

    64비트 정수 데이터형

    sqlite3_uint64

    부호없는 64비트 정수 데이터형

    sqlite_int64

    sqlite_uint64

    sqlite3_io_methods

    sqlite3_mutex

    sqlite3_stmt

    준비된 SQL 쿼리 객체

    sqlite3_temp_directory

    sqlite3_value

    동적 데이터형

    sqlite3_vfs

3.2. Constants [Bottom] [Top]

  • 상수

    설명

    SQLITE_ABORT

    SQLITE_ACCESS_EXISTS

    SQLITE_ACCESS_READ

    SQLITE_ACCESS_READWRITE

    SQLITE_ALTER_TABLE

    SQLITE_ANALYZE

    SQLITE_ANY

    SQLITE_ATTACH

    SQLITE_AUTH

    SQLITE_BLOB

    SQLITE_BUSY

    SQLITE_CANTOPEN

    SQLITE_CONSTRAINT

    SQLITE_COPY

    SQLITE_CORRUPT

    SQLITE_CREATE_INDEX

    SQLITE_CREATE_TABLE

    SQLITE_CREATE_TEMP_INDEX

    SQLITE_CREATE_TEMP_TABLE

    SQLITE_CREATE_TEMP_TRIGGER

    SQLITE_CREATE_TEMP_VIEW

    SQLITE_CREATE_TRIGGER

    SQLITE_CREATE_VIEW

    SQLITE_CREATE_VTABLE

    SQLITE_DELETE

    SQLITE_DENY

    SQLITE_DETACH

    SQLITE_DONE

    SQLITE_DROP_INDEX

    SQLITE_DROP_TABLE

    SQLITE_DROP_TEMP_INDEX

    SQLITE_DROP_TEMP_TABLE

    SQLITE_DROP_TEMP_TRIGGER

    SQLITE_DROP_TEMP_VIEW

    SQLITE_DROP_TRIGGER

    SQLITE_DROP_VIEW

    SQLITE_DROP_VTABLE

    SQLITE_EMPTY

    SQLITE_ERROR

    SQLITE_FCNTL_LOCKSTATE

    SQLITE_FLOAT

    SQLITE_FORMAT

    SQLITE_FULL

    SQLITE_FUNCTION

    SQLITE_GET_LOCKPROXYFILE

    SQLITE_IGNORE

    SQLITE_INSERT

    SQLITE_INTEGER

    SQLITE_INTERNAL

    SQLITE_INTERRUPT

    SQLITE_IOCAP_ATOMIC

    SQLITE_IOCAP_ATOMIC16K

    SQLITE_IOCAP_ATOMIC1K

    SQLITE_IOCAP_ATOMIC2K

    SQLITE_IOCAP_ATOMIC32K

    SQLITE_IOCAP_ATOMIC4K

    SQLITE_IOCAP_ATOMIC512

    SQLITE_IOCAP_ATOMIC64K

    SQLITE_IOCAP_ATOMIC8K

    SQLITE_IOCAP_SAFE_APPEND

    SQLITE_IOCAP_SEQUENTIAL

    SQLITE_IOERR

    SQLITE_IOERR_ACCESS

    SQLITE_IOERR_BLOCKED

    SQLITE_IOERR_CHECKRESERVEDLOCK

    SQLITE_IOERR_CLOSE

    SQLITE_IOERR_DELETE

    SQLITE_IOERR_DIR_CLOSE

    SQLITE_IOERR_DIR_FSYNC

    SQLITE_IOERR_FSTAT

    SQLITE_IOERR_FSYNC

    SQLITE_IOERR_LOCK

    SQLITE_IOERR_NOMEM

    SQLITE_IOERR_RDLOCK

    SQLITE_IOERR_READ

    SQLITE_IOERR_SHORT_READ

    SQLITE_IOERR_TRUNCATE

    SQLITE_IOERR_UNLOCK

    SQLITE_IOERR_WRITE

    SQLITE_LAST_ERRNO

    SQLITE_LIMIT_ATTACHED

    SQLITE_LIMIT_COLUMN

    SQLITE_LIMIT_COMPOUND_SELECT

    SQLITE_LIMIT_EXPR_DEPTH

    SQLITE_LIMIT_FUNCTION_ARG

    SQLITE_LIMIT_LENGTH

    SQLITE_LIMIT_LIKE_PATTERN_LENGTH

    SQLITE_LIMIT_SQL_LENGTH

    SQLITE_LIMIT_VARIABLE_NUMBER

    SQLITE_LIMIT_VDBE_OP

    SQLITE_LOCKED

    SQLITE_LOCKED_SHAREDCACHE

    SQLITE_LOCK_EXCLUSIVE

    SQLITE_LOCK_NONE

    SQLITE_LOCK_PENDING

    SQLITE_LOCK_RESERVED

    SQLITE_LOCK_SHARED

    SQLITE_MISMATCH

    SQLITE_MISUSE

    SQLITE_MUTEX_FAST

    SQLITE_MUTEX_RECURSIVE

    SQLITE_MUTEX_STATIC_LRU

    SQLITE_MUTEX_STATIC_LRU2

    SQLITE_MUTEX_STATIC_MASTER

    SQLITE_MUTEX_STATIC_MEM

    SQLITE_MUTEX_STATIC_MEM2

    SQLITE_MUTEX_STATIC_OPEN

    SQLITE_MUTEX_STATIC_PRNG

    SQLITE_NOLFS

    SQLITE_NOMEM

    SQLITE_NOTADB

    SQLITE_NOTFOUND

    SQLITE_NULL

    SQLITE_OK

    SQLITE_OPEN_CREATE

    SQLITE_OPEN_DELETEONCLOSE

    SQLITE_OPEN_EXCLUSIVE

    SQLITE_OPEN_FULLMUTEX

    SQLITE_OPEN_MAIN_DB

    SQLITE_OPEN_MAIN_JOURNAL

    SQLITE_OPEN_MASTER_JOURNAL

    SQLITE_OPEN_NOMUTEX

    SQLITE_OPEN_READONLY

    SQLITE_OPEN_READWRITE

    SQLITE_OPEN_SUBJOURNAL

    SQLITE_OPEN_TEMP_DB

    SQLITE_OPEN_TEMP_JOURNAL

    SQLITE_OPEN_TRANSIENT_DB

    SQLITE_PERM

    SQLITE_PRAGMA

    SQLITE_PROTOCOL

    SQLITE_RANGE

    SQLITE_READ

    SQLITE_READONLY

    SQLITE_REINDEX

    SQLITE_ROW

    SQLITE_SAVEPOINT

    SQLITE_SCHEMA

    SQLITE_SELECT

    SQLITE_SET_LOCKPROXYFILE

    SQLITE_STATIC

    SQLITE_SYNC_DATAONLY

    SQLITE_SYNC_FULL

    SQLITE_SYNC_NORMAL

    SQLITE_TESTCTRL_ALWAYS

    SQLITE_TESTCTRL_ASSERT

    SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS

    SQLITE_TESTCTRL_BITVEC_TEST

    SQLITE_TESTCTRL_FAULT_INSTALL

    SQLITE_TESTCTRL_PENDING_BYTE

    SQLITE_TESTCTRL_PRNG_RESET

    SQLITE_TESTCTRL_PRNG_RESTORE

    SQLITE_TESTCTRL_PRNG_SAVE

    SQLITE_TEXT

    SQLITE_TOOBIG

    SQLITE_TRANSACTION

    SQLITE_TRANSIENT

    SQLITE_UPDATE

    SQLITE_UTF16

    SQLITE_UTF16BE

    SQLITE_UTF16LE

    SQLITE_UTF16_ALIGNED

    SQLITE_UTF8

    SQLITE_VERSION

    SQLITE_VERSION_NUMBER

3.3. Functions [Bottom] [Top]

  • 함수

    설명

    sqlite3_aggregate_context

    sqlite3_auto_extension

    sqlite3_bind_blob

    준비된 SQL 쿼리의 매개변수 값 바인딩 (BLOB형)

    sqlite3_bind_double

    준비된 SQL 쿼리의 매개변수 값 바인딩 (double형)

    sqlite3_bind_int

    준비된 SQL 쿼리의 매개변수 값 바인딩 (int형)

    sqlite3_bind_int64

    준비된 SQL 쿼리의 매개변수 값 바인딩 (_ _int64형, sqlite3_int64 참조)

    sqlite3_bind_null

    준비된 SQL 쿼리의 매개변수 값 바인딩 (NULL형)

    sqlite3_bind_parameter_count

    준비된 SQL 쿼리의 매개변수 개수 반환

    sqlite3_bind_parameter_index

    준비된 SQL 쿼리의 매개변수 순서 반환

    sqlite3_bind_parameter_name

    준비된 SQL 쿼리의 매개변수 이름 반환

    sqlite3_bind_text

    준비된 SQL 쿼리의 매개변수 값 바인딩 (UTF-8 문자열)

    sqlite3_bind_text16

    준비된 SQL 쿼리의 매개변수 값 바인딩 (UTF-16 문자열)

    sqlite3_bind_value

    준비된 SQL 쿼리의 매개변수 값 바인딩 (sqlite3_value 참조)

    sqlite3_bind_zeroblob

    준비된 SQL 쿼리의 매개변수 값 바인딩 (0으로 초기화된 BLOB형)

    sqlite3_blob_bytes

    sqlite3_blob_close

    sqlite3_blob_open

    sqlite3_blob_read

    sqlite3_blob_write

    sqlite3_busy_handler

    sqlite3_busy_timeout

    sqlite3_changes

    sqlite3_clear_bindings

    sqlite3_close

    데이터베이스 연결 해제, sqlite3 객체 해제

    sqlite3_collation_needed

    sqlite3_collation_needed16

    sqlite3_column_blob

    SQL 쿼리 결과의 컬럼값 반환 (BLOB형)

    sqlite3_column_bytes

    SQL 쿼리 결과의 컬럼값의 크기 반환 (BLOB형, UTF-8 문자열)

    sqlite3_column_bytes16

    SQL 쿼리 결과의 컬럼값의 크기 반환 (UTF-16 문자열)

    sqlite3_column_count

    SQL 쿼리 결과의 컬럼 개수 반환

    sqlite3_column_database_name

    SQL 쿼리 결과의 데이터베이스 이름 반환 (UTF-8 문자열)

    sqlite3_column_database_name16

    SQL 쿼리 결과의 데이터베이스 이름 반환 (UTF-16 문자열)

    sqlite3_column_decltype

    SQL 쿼리 결과의 해당하는 테이블의 컬럼 타입을 반환 (UTF-8 문자열)

    sqlite3_column_decltype16

    SQL 쿼리 결과의 해당하는 테이블의 컬럼 타입을 반환 (UTF-16 문자열)

    sqlite3_column_double

    SQL 쿼리 결과의 컬럼값 반환 (double형)

    sqlite3_column_int

    SQL 쿼리 결과의 컬럼값 반환 (int형)

    sqlite3_column_int64

    SQL 쿼리 결과의 컬럼값 반환 (int64형, sqlite3_int64 참조)

    sqlite3_column_name

    SQL 쿼리 결과의 컬럼 이름 반환 (UTF-8 문자열)

    sqlite3_column_name16

    SQL 쿼리 결과의 컬럼 이름 반환 (UTF-16 문자열)

    sqlite3_column_origin_name

    * SQL 쿼리 결과의 컬럼 이름 반환 (UTF-8 문자열)

    sqlite3_column_origin_name16

    * SQL 쿼리 결과의 컬럼 이름 반환 (UTF-16 문자열)

    sqlite3_column_table_name

    SQL 쿼리 결과의 테이블 이름 반환 (UTF-8 문자열)

    sqlite3_column_table_name16

    SQL 쿼리 결과의 테이블 이름 반환 (UTF-16 문자열)

    sqlite3_column_text

    SQL 쿼리 결과의 컬럼값 반환 (UTF-8 문자열)

    sqlite3_column_text16

    SQL 쿼리 결과의 컬럼값 반환 (UTF-16 문자열)

    sqlite3_column_type

    SQL 쿼리 결과의 컬럼값 타입 반환

    sqlite3_column_value

    SQL 쿼리 결과의 컬럼값 반환 (sqlite3_value 참조)

    sqlite3_commit_hook

    sqlite3_complete

    sqlite3_complete16

    sqlite3_context_db_handle

    sqlite3_create_collation

    sqlite3_create_collation16

    sqlite3_create_collation_v2

    sqlite3_create_function

    sqlite3_create_function16

    sqlite3_data_count

    sqlite3_db_handle

    sqlite3_db_mutex

    sqlite3_enable_load_extension

    sqlite3_enable_shared_cache

    sqlite3_errcode

    에러 코드 반환

    sqlite3_errmsg

    에러 메시지 반환 (UTF-8 문자열)

    sqlite3_errmsg16

    에러 메시지 반환 (UTF-16 문자열)

    sqlite3_exec

    SQL 쿼리 실행

    sqlite3_extended_errcode

    확장 에러 코드 반환

    sqlite3_extended_result_codes

    sqlite3_file_control

    sqlite3_finalize

    준비된 SQL 쿼리 해제(삭제)

    sqlite3_free

    SQLite 사용 중 할당된 메모리 해제

    sqlite3_free_table

    sqlite3_get_table() 함수에서 반환된 테이블 데이터 해제

    sqlite3_get_autocommit

    sqlite3_get_auxdata

    sqlite3_get_table

    SQL 쿼리 결과를 테이블 형태로 반환 (UTF-8 문자열, 다중 SQL 쿼리 가능)

    sqlite3_initialize

    sqlite3_interrupt

    sqlite3_last_insert_rowid

    sqlite3_libversion

    sqlite3_libversion_number

    sqlite3_limit

    sqlite3_load_extension

    sqlite3_malloc

    sqlite3_memory_highwater

    sqlite3_memory_used

    sqlite3_mprintf

    sqlite3_mutex_alloc

    sqlite3_mutex_enter

    sqlite3_mutex_free

    sqlite3_mutex_held

    sqlite3_mutex_leave

    sqlite3_mutex_notheld

    sqlite3_mutex_try

    sqlite3_next_stmt

    sqlite3_open

    데이터베이스 연결 (UTF-8 문자열 사용)

    sqlite3_open16

    데이터베이스 연결 (UTF-16 문자열 사용)

    sqlite3_open_v2

    데이터베이스 연결, 새로운 버전, VFS 사용 (UTF-8 문자열 사용)

    sqlite3_os_end

    sqlite3_os_init

    sqlite3_prepare

    준비된 SQL 쿼리 생성 (UTF-8 문자열 사용)

    sqlite3_prepare16

    준비된 SQL 쿼리 생성 (UTF-16 문자열 사용)

    sqlite3_prepare16_v2

    준비된 SQL 쿼리 생성, 새로운 버전 (추천, UTF-16 문자열 사용)

    sqlite3_prepare_v2

    준비된 SQL 쿼리 생성, 새로운 버전 (추천, UTF-8 문자열 사용)

    sqlite3_progress_handler

    sqlite3_randomness

    sqlite3_realloc

    sqlite3_release_memory

    sqlite3_reset

    준비된 SQL 쿼리 초기화

    sqlite3_reset_auto_extension

    sqlite3_result_blob

    sqlite3_result_double

    sqlite3_result_error

    sqlite3_result_error16

    sqlite3_result_error_code

    sqlite3_result_error_nomem

    sqlite3_result_error_toobig

    sqlite3_result_int

    sqlite3_result_int64

    sqlite3_result_null

    sqlite3_result_text

    sqlite3_result_text16

    sqlite3_result_text16be

    sqlite3_result_text16le

    sqlite3_result_value

    sqlite3_result_zeroblob

    sqlite3_rollback_hook

    sqlite3_set_authorizer

    sqlite3_set_auxdata

    sqlite3_shutdown

    sqlite3_sleep

    sqlite3_snprintf

    sqlite3_soft_heap_limit

    sqlite3_sql

    sqlite3_step

    준비된 SQL 쿼리 실행

    sqlite3_table_column_metadata

    sqlite3_test_control

    sqlite3_threadsafe

    sqlite3_total_changes

    sqlite3_update_hook

    sqlite3_user_data

    sqlite3_value_blob

    sqlite3_value_bytes

    sqlite3_value_bytes16

    sqlite3_value_double

    sqlite3_value_int

    sqlite3_value_int64

    sqlite3_value_numeric_type

    sqlite3_value_text

    sqlite3_value_text16

    sqlite3_value_text16be

    sqlite3_value_text16le

    sqlite3_value_type

    sqlite3_version

    sqlite3_vfs_find

    sqlite3_vfs_register

    sqlite3_vfs_unregister

    sqlite3_vmprintf

'컴퓨터 > 아이폰' 카테고리의 다른 글

날짜 -> 시간 시간->날짜 변환  (0) 2012.01.18
파일 관련 자료  (0) 2012.01.18
페이지 넘기는 효과  (0) 2011.12.15
Gesture 인식 샘플  (0) 2011.12.15
현재화면 캡쳐하기  (0) 2011.12.15
      
Posted by k_ben


CGContextRef context = UIGraphicsGetCurrentContext();

[UIView beginAnimations:nil context:context];

[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIView setAnimationDuration:1.0];


UIView *whiteBackdrop = self.pageView;


NSArray *array = [self.pageView subviews];


// Choose up or down curl


[UIView setAnimationTransitionUIViewAnimationTransitionCurlUp forView:whiteBackdrop cache:YES];


for (int i=1; i<[array count]; i++)

{

    [whiteBackdrop exchangeSubviewAtIndex:[array count]-i withSubviewAtIndex:[array count]-i-1];

}

[UIView setAnimationDelegate:self];


[UIView commitAnimations];

'컴퓨터 > 아이폰' 카테고리의 다른 글

파일 관련 자료  (0) 2012.01.18
sqlite에 관한거..  (0) 2012.01.17
Gesture 인식 샘플  (0) 2011.12.15
현재화면 캡쳐하기  (0) 2011.12.15
String -> MD5(암호) 변환 샘플  (0) 2011.12.15
      
Posted by k_ben


- (void) touchesBegan:(NSSet *) touches withEvent: (UIEvent *) event
- (void) touchesMoved:(NSSet *) touches withEvent: (UIEvent *) event
- (void) touchesEnded:(NSSet *) touches withEvent: (UIEvent *) event
을 이용하여 인식을 한다.




- (void) touchesBegan:(NSSet *) touches withEvent: (UIEvent *) event

{

finished = NO;

startPoint = [[touches anyObjectlocationInView:self.view];

multitouch = (touches.count > 1);

pointCount = 1;

}


- (void) touchesMoved:(NSSet *) touches withEvent: (UIEvent *) event

{

pointCount++;

if (finishedreturn;

// Handle multitouch

if (touches.count > 1)

{

// get touches

UITouch *touch1 = [[touches allObjectsobjectAtIndex:0];

UITouch *touch2 = [[touches allObjectsobjectAtIndex:1];

// find current and previous points

CGPoint cpoint1 = [touch1 locationInView:self.view];

CGPoint ppoint1 = [touch1 previousLocationInView:self.view];

CGPoint cpoint2 = [touch2 locationInView:self.view];

CGPoint ppoint2 = [touch2 previousLocationInView:self.view];

// calculate distances between the points

CGFloat cdist = distance(cpoint1, cpoint2);

CGFloat pdist = distance(ppoint1, ppoint2);

multitouch = YES;

        

// The pinch has to exceed a minimum distance

if (ABS(cdist - pdist) < MIN_PINCHreturn;

if (cdist < pdist)

touchtype = UITouchPinchIn;

else

touchtype = UITouchPinchOut;

finished = YES;

return;

}

else 

{

// Check single touch for swipe

CGPoint cpoint = [[touches anyObjectlocationInView:self.view];

float dx = DX(cpoint, startPoint);

float dy = DY(cpoint, startPoint);

multitouch = NO;

        

finished = YES;

if ((dx > SWIPE_DRAG_MIN) && (ABS(dy) < DRAGLIMIT_MAX)) // hswipe left

touchtype = UITouchSwipeLeft;

else if ((-dx > SWIPE_DRAG_MIN) && (ABS(dy) < DRAGLIMIT_MAX)) // hswipe right

touchtype = UITouchSwipeRight;

else if ((dy > SWIPE_DRAG_MIN) && (ABS(dx) < DRAGLIMIT_MAX)) // vswipe up

touchtype = UITouchSwipeUp;

else if ((-dy > SWIPE_DRAG_MIN) && (ABS(dx) < DRAGLIMIT_MAX)) // vswipe down

touchtype = UITouchSwipeDown;

else

finished = NO;

}

}


- (void) touchesEnded:(NSSet *) touches withEvent: (UIEvent *) event

{

// was not detected as a swipe

if (!finished && !multitouch

{

// tap or double tap

if (pointCount < 3

{

if ([[touches anyObjecttapCount] == 1

touchtype = UITouchTap;

else

touchtype = UITouchDoubleTap;

}

else

touchtype = UITouchDrag;

}

// did points exceeded proper swipe?

if (finished && !multitouch

{

if (pointCount > POINT_TOLERANCEtouchtype = UITouchDrag;

}

// Is this properly a tap/double tap?

if (multitouch || (touches.count > 1))

{

// tolerance is *very* high

if (pointCount < 10)

{

if ([[touches anyObjecttapCount] == 1

touchtype = UITouchMultitouchTap;

else

touchtype = UITouchMultitouchDoubleTap;

}

}

NSString *whichItem = nil;

if (touchtype == UITouchUnknown) whichItem = @"Unknown";

else if (touchtype == UITouchTap) whichItem = @"Tap";

else if (touchtype == UITouchDoubleTap) whichItem = @"Double Tap";

else if (touchtype == UITouchDrag) whichItem = @"Drag";

else if (touchtype == UITouchMultitouchTap) whichItem = @"Multitouch Tap";

else if (touchtype == UITouchMultitouchDoubleTap) whichItem = @"Multitouch Double Tap";

else if (touchtype == UITouchSwipeLeft) whichItem = @"Swipe Left";

else if (touchtype == UITouchSwipeRight) whichItem = @"Swipe Right";

else if (touchtype == UITouchSwipeUp) whichItem = @"Swipe Up";

else if (touchtype == UITouchSwipeDown) whichItem = @"Swipe Down";

else if (touchtype == UITouchPinchIn) whichItem = @"Pinch In";

else if (touchtype == UITouchPinchOut) whichItem = @"Pinch Out";

    

//[self.vc performSelector:@selector(updateState:withPoints:) withObject:whichItem withObject:[NSNumber numberWithInt:pointCount]];

    

    [self performSelector:@selector(updateState:pointCount:) withObject:whichItem withObject:[NSNumber numberWithInt:pointCount]];

       


}


-(void)updateState:(NSString*)state pointCount:(NSNumber*)count

{

    NSString *outstring = [NSString stringWithFormat:@"state = %@, count = %d", state, [count intValue]];

UIAlertView *av = [[[UIAlertView allocinitWithTitle:@"Gestures" message:outstring delegate:nil cancelButtonTitle:@"확인" otherButtonTitles:nilautorelease];

[av show];

}

'컴퓨터 > 아이폰' 카테고리의 다른 글

sqlite에 관한거..  (0) 2012.01.17
페이지 넘기는 효과  (0) 2011.12.15
현재화면 캡쳐하기  (0) 2011.12.15
String -> MD5(암호) 변환 샘플  (0) 2011.12.15
아이폰에서 주소록 가져오기.  (0) 2011.12.15
      
Posted by k_ben


//img에 현재 화면이 캡쳐 된다.

UIImage *img;

UIGraphicsBeginImageContext(self.view.frame.size);

GContextRef context = UIGraphicsGetCurrentContext();

[self.view.layer renderInContext:context];

img = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

'컴퓨터 > 아이폰' 카테고리의 다른 글

페이지 넘기는 효과  (0) 2011.12.15
Gesture 인식 샘플  (0) 2011.12.15
String -> MD5(암호) 변환 샘플  (0) 2011.12.15
아이폰에서 주소록 가져오기.  (0) 2011.12.15
SMS보내기  (0) 2011.12.15
      
Posted by k_ben


-(NSString*) md5:(NSString*)srcStr

{

const char *cStr = [srcStr UTF8String];

unsigned char result[CC_MD5_DIGEST_LENGTH];

CC_MD5(cStr, strlen(cStr), result);

return [NSString stringWithFormat:

@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",

result[0],result[1],result[2],result[3],result[4],result[5],result[6],result[7],

result[8],result[9],result[10],result[11],result[12],result[13],result[14],result[15]];

}

 

      
Posted by k_ben


ABAddressBookRef addressBook = ABAddressBookCreate();

CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);

CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);


friend_info = [[NSMutableArray alloc]init]; 

//===================================================//

// 저장된 구조체를 돌면서 해당 데이터를 추출해 옵니다.

//===================================================//


for (int i = 0; i < nPeople ; i++) {

ABRecordRef ref = CFArrayGetValueAtIndex(allPeople, i);

CFStringRef firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);

CFStringRef lastName = ABRecordCopyValue(ref, kABPersonLastNameProperty);


NSString *name = [NSString stringWithFormat:@"%@ %@", (lastName != nil) ? (NSString *)lastName : @"" ,(firstName != nil) ? (NSString *)firstName : @""];

if (name == nil) {

return;

}

// 이메일 리트를 구한다.

ABMultiValueRef emails = ABRecordCopyValue(ref, kABPersonEmailProperty);

// 이메일 리스트가 존재하지 않으면

if(ABMultiValueGetCount(emails) <= 0) { // the selected contact has no attached email address

[self dismissModalViewControllerAnimated:YES];

}

else//if(ABMultiValueGetCount(emails) == 1) { // the selected contact has exactly one email address

for(int i=0; i<ABMultiValueGetCount(emails); i++){

CFStringRef email = ABMultiValueCopyValueAtIndex(emails, i);

NSString *emailString = (NSString *) email;

//self.emailList.text = [self.emailList.text stringByAppendingString:[NSString stringWithFormat:@"%@ ", emailString]];

//NSLog(@"email = %@", emailString);

//이메일이 있는 사람들만 저장하도록 합니다.

if(emailString == nil){

}else {

NSDictionary *info = [[NSDictionary allocinitWithObjectsAndKeys:

  name, @"NAME", emailString, @"EMAIL"kNotSelectTableCell@"CHECK"nil];

email_person_cnt++;

[friend_info addObject:info];

[info release];

}

[emailString release];

[self dismissModalViewControllerAnimated:YES];

}

}

ABMultiValueRef phones = ABRecordCopyValue(ref, kABPersonPhoneProperty);

if(ABMultiValueGetCount(phones) <= 0) { // the selected contact has no attached email address

[self dismissModalViewControllerAnimated:YES];

}

else//if(ABMultiValueGetCount(emails) == 1) { // the selected contact has exactly one email address

for(int i=0; i<ABMultiValueGetCount(phones); i++){

CFStringRef phone = ABMultiValueCopyValueAtIndex(phones, i);

NSString *phoneString = (NSString *) phone;

if(phoneString == nil){

}else {

NSDictionary *info = [[NSDictionary allocinitWithObjectsAndKeys:

  name, @"NAME", phoneString, @"EMAIL"kNotSelectTableCell@"CHECK"nil];

email_person_cnt++;

[friend_info addObject:info];

[info release];

}

[phoneString release];

[self dismissModalViewControllerAnimated:YES];

}

}

}

CFRelease(allPeople);


더 자세히 알고싶으시면 댓글이나 방명록에 써주세요.

      
Posted by k_ben

SMS보내기

컴퓨터/아이폰 : 2011. 12. 15. 19:13


MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc]init];

picker.messageComposeDelegate = self;


picker.recipients = [NSArray arrayWithObject:@"전화번호"];

picker.body = @"메세지 내용";


[self presentModalViewController:picker animated:YES];

[picker release];

      
Posted by k_ben