@interface NSURLRequest (IgnoreSSL)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host;
@end
@implementation NSURLRequest (IgnoreSSL)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host
{
return YES;
}
#end
2011년 4월 14일 목요일
2011년 3월 22일 화요일
[Iphone]테이블뷰 그룹일 경우 백그라운드 설정하기
UIView *backgroundView = [[UIView alloc] initWithFrame: self.view.frame];
backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backgroundImg.png"]];
self.tableView.backgroundView = backgroundView;
[backgroundView release];
backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backgroundImg.png"]];
self.tableView.backgroundView = backgroundView;
[backgroundView release];
2011년 3월 17일 목요일
[Iphone]urlEncoding, urlDecoding 함수
+ (NSString *)urlEncodeValue:(NSString *)str
{
NSString *result = (NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)str,
NULL,
CFSTR(":/?#[]@!$&’()*+,;="),
kCFStringEncodingUTF8);
return [result autorelease];
}
+ (NSString *)urlDecodeString:(NSString *)str
{
NSString *result = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
(CFStringRef)str,
CFSTR(""),
kCFStringEncodingUTF8);
return [result autorelease];
}
{
NSString *result = (NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)str,
NULL,
CFSTR(":/?#[]@!$&’()*+,;="),
kCFStringEncodingUTF8);
return [result autorelease];
}
+ (NSString *)urlDecodeString:(NSString *)str
{
NSString *result = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
(CFStringRef)str,
CFSTR(""),
kCFStringEncodingUTF8);
return [result autorelease];
}
[Iphone]Array 파일로 저장
Settings.plist는 Resources 폴더에 미리 가지고 있어야 함.
- (void)saveRecents:(NSMutableArray *)recents {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Setting.plist"];
[recents writeToFile:path atomically:YES];
}
- (NSMutableArray *)loadRecents {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Setting.plist"];
return [NSMutableArray arrayWithContentsOfFile:path];
}
- (void)saveRecents:(NSMutableArray *)recents {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Setting.plist"];
[recents writeToFile:path atomically:YES];
}
- (NSMutableArray *)loadRecents {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Setting.plist"];
return [NSMutableArray arrayWithContentsOfFile:path];
}
[Iphone]텍스트 필드의 길이 제한
UITextFieldDelegate 상속
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if(textField.text.length >= 20 && range.length == 0) {
return NO;
} else {
return YES;
}
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if(textField.text.length >= 20 && range.length == 0) {
return NO;
} else {
return YES;
}
}
2011년 3월 16일 수요일
[Iphone]단말에서 어플리케이션 실행 방법
1. App Developer 사이트에 단말기의 UDID 등록
2. Provisioning Profile에 단말기의 UDID 체크
3. Provisioning Profile을 다운로드 받아서 그 프로파일을 이용해서 빌드 후 배포
2. Provisioning Profile에 단말기의 UDID 체크
3. Provisioning Profile을 다운로드 받아서 그 프로파일을 이용해서 빌드 후 배포
[Iphone]디바이스 모델 얻어오기 및 각종 정보 얻어오기
+ (NSString *)getDeviceModel {
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine];
free(machine);
return platform;
}
+ (NSString *)getOsName {
return [[UIDevice currentDevice] systemName];
}
+ (NSString *)getOsVersion {
return [[UIDevice currentDevice] systemVersion];
}
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine];
free(machine);
return platform;
}
+ (NSString *)getOsName {
return [[UIDevice currentDevice] systemName];
}
+ (NSString *)getOsVersion {
return [[UIDevice currentDevice] systemVersion];
}
2011년 2월 22일 화요일
[Iphone]텍스트와 숫자만 검사하는 코드
+ (bool)checkKeyCode:(NSString *)text {
NSRange range = [text rangeOfString:@"[0-9|a-z|A-Z|ㄱ-ㅎ|ㅏ-ㅣ|가-힝| ]*"
options:NSRegularExpressionSearch];
if(range.length != [text length]) {
return NO;
}
return YES;
}
2011년 2월 11일 금요일
[Iphone]전화 및 SMS
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:111-1111-1111"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:111-1111-1111"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:111-1111-1111"]];
[Iphone]한글 UTF-8로 인코딩
NSString *escapedUrl = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
2011년 1월 27일 목요일
[Iphone]키보드 숨기기 팁
A 클래스가 UITextFieldDelegate를 상속받는다.
@interface A : UIViewController<UITextFieldDelegate> {
UITextField *textEdit;
}
델리게이트를 가리키도록 한다.
- (void)viewDidLoad {
textEdit.delegate = self;
[super viewDidLoad];
}
아래 함수를 호출하면 키패드가 사라진다.
[textEdit resignFirstResponder];
아래 소스는 아무 곳이나 눌렀을 경우 키패드가 사라지도록 하는 팁
- (IBAction)onBackground:(id)sender {
@interface A : UIViewController<UITextFieldDelegate> {
UITextField *textEdit;
}
델리게이트를 가리키도록 한다.
- (void)viewDidLoad {
textEdit.delegate = self;
[super viewDidLoad];
}
아래 함수를 호출하면 키패드가 사라진다.
[textEdit resignFirstResponder];
아래 소스는 아무 곳이나 눌렀을 경우 키패드가 사라지도록 하는 팁
- (IBAction)onBackground:(id)sender {
NSArray *subs = self.view.subviews;
id curView;
for(curView in subs) {
if([curView conformsToProtocol:@protocol(UITextInputTraits)]) {
[curView resignFirstResponder];
}
}
}
뷰 최상단에 CustonButton을 넣고 위 함수를 Touch Up Inside 이벤트와 연결한다.
2011년 1월 7일 금요일
[Android]XML로 Shape Drawable 만들기
사각형
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#0000FF"/>
<stroke android:width="4dp" android:color="#FFFFFF" android:dashWidth="1dp"
android:dashGap="2dp"/>
<padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp"/>
<corners android:radius="4dp"/>
</shape>
원형
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#0000FF"/>
<stroke android:width="4dp" android:color="#FFFFFF" android:dashWidth="1dp"
android:dashGap="2dp"/>
<padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp"/>
<corners android:radius="4dp"/>
</shape>
원형
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#0000FF"/>
<stroke android:width="4dp" android:color="#FFFFFF" android:dashWidth="1dp"
android:dashGap="2dp"/>
<padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp"/>
<corners android:radius="4dp"/>
</shape>
라인
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:width="4dp" android:color="#FFFFFF" android:dashWidth="1dp"
android:dashGap="2dp"/>
</shape>
solid 대신 gradient를 사용하여 다양한 컬러 표현 가능
<gradient android:startColor="#000000" android:endColor="#FFFFFF" android:angle="270"/>
solid는 단색 채우기
stroke는 테두리 그리기
corners는 가장자리 둥글게 처리
padding은 패딩 처리
gradient는 그라데이션 처리(angle 270은 위에서 아래로 색 변경)
피드 구독하기:
글 (Atom)