Project > Build Setting
Apple LLVM 5.0 - Language - Objective C
Objective-C Automatic Reference Counting(ARC) 기본이 YES로 되어 있는데 이걸 NO로 변경
Project > Build Setting
Apple LLVM 5.0 - Language - Objective C
Objective-C Automatic Reference Counting(ARC) 기본이 YES로 되어 있는데 이걸 NO로 변경
script File - copy bundle resources 추가
일반 파일 추가 후 다음과 같이 하면 화면에 html파일 로드
NSString *path = [[NSBundle mainBundle] pathForResource:@"a" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
warning: no rule to process file '$(PROJECT_DIR)/SNSDemo_Hybrid/jquerymobile.js' of type sourcecode.javascript for architecture i386
위와 같이 경고가 나타날때가 있다.
이럴땐 다음과 같이 하면 된다.
Build Phases - Compile resources에 있는 *.js파일을 Copy Bundle Resources로 옮기던지 아니면 삭제.
orientation에 따른 stylesheet의 변경
<link rel="stylesheet" media="all and (orientation:landscape)" href="userStylesheet_landscape.css"/>
<link rel="stylesheet" media="all and (orientation:portrait)" href="userStylesheet_portrait.css"/>
portrait / landscape 알아서 css 참조를 변경한다.
#import <sys/utsname.h>
struct utsname systemInfo;
uname(&systemInfo);
NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
if ([platform isEqualToString:@"iPhone1,1"]) {
platform = @"iPhone2G";
}
else if ([platform isEqualToString:@"iPhone1,2"]) {
platform = @"iPhone3G";
}
else if ([platform isEqualToString:@"iPhone2,1"]) {
platform = @"iPhone3GS";
}
else if ([platform isEqualToString:@"iPhone3,1"]) {
platform = @"iPhone4";
}
else if ([platform isEqualToString:@"iPhone3,3"]) {
platform = @"iPhone4(CDMA)";
}
else if ([platform isEqualToString:@"iPhone4,1"]) {
platform = @"iPhone4S";
}
else if ([platform isEqualToString:@"iPod1,1"]) {
platform = @"iPod1G";
}
else if ([platform isEqualToString:@"iPod2,1"]) {
platform = @"iPod2G";
}
else if ([platform isEqualToString:@"iPod3,1"]) {
platform = @"iPod3G";
}
else if ([platform isEqualToString:@"iPod4,1"]) {
platform = @"iPod4G";
}
else if ([platform isEqualToString:@"iPad1,1"]) {
platform = @"iPad";
}
else if ([platform isEqualToString:@"iPad2,1"]) {
platform = @"iPad2(WiFi)";
}
else if ([platform isEqualToString:@"iPad2,2"]) {
platform = @"iPad2(GSM)";
}
else if ([platform isEqualToString:@"iPad2,3"]) {
platform = @"iPad2(CDMA)";
}
else if ([platform isEqualToString:@"iPad3,1"]) {
platform = @"iPad3(WiFi)";
}
else if ([platform isEqualToString:@"iPad3,2"]) {
platform = @"iPad3(GSM)";
}
else if ([platform isEqualToString:@"iPad3,3"]) {
platform = @"iPad3(CDMA)";
}
else if ([platform isEqualToString:@"i386"]) {
platform = @"Simulator";
}
else {
platform = @"unKnownDevice";
}
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(rightButtonAction:)];
self.navigationItem.rightBarButtonItem = rightButton;
iPad
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:imagePickerController];
popOver.delegate =self;
[popOver presentPopoverFromRect:CGRectMake(self.view.frame.size.width, 0, 0, 0) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
iPhone
- (void)rightButtonAction:(id)sender { UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Select" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"What" otherButtonTitles:nil, nil]; [actionSheet showInView:self.view]; [actionSheet release]; } -(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; switch (buttonIndex) { case 0: { picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentModalViewController:picker animated:YES]; } break; default: break; } }
add Framework - systemConfiguration
User Header Search Paths - *.h 주소 추가
deployment Target 4.3(개인사항)
other linker Flags -all_load -ObjC
purgeIdleCellConnections: found one to purge conn = 0x5f15c0
iOS6업데이트 이후 콘솔에 이게 자꾸 찍힌다.
검색 결과 다음과 같은 답을 얻었다
통신상태가 좋지 않을 때 OS 레벨에서 발생하는 에러
이게 많이 불리게 되면 crash로 앱이 죽을 수도 있다고 함.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"file.txt"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:path] == NO) { // 파일 존재 유무 확인
if ([fileManager createFileAtPath:path contents:nil attributes:nil] == NO) { // 파일 생성 성공 여부 확인
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Fail" message:@"File Create Failed" delegate:self cancelButtonTitle:@"Comfirm" otherButtonTitles:nil];
[alert show];
[alert release];
return ;
}
}
/Users/본인피씨이름/Library/Application Support/iPhone Simulator/iOS개발버전/Applications/개발프로젝트ID
10.6 이전 버전은 위의 경로로 바로 이동 가능
10.7 이후 버전은 파인더 > 메뉴 > option 키를 누르면 라이브러리 표시 됨
이때 이동 가능
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Message" delegate:self cancelButtonTitle:@"Comfirm" otherButtonTitles:nil, nil];
[alert show];
[alert release];
# simulator일 경우
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"확장자"];
NSError *error = [[NSError alloc] init];
NSString *data = [[NSString alloc] initWithContentsOfFile:filepath encoding:NSUTF8StringEncoding error:&error];