NSArray 에 내용 추가하기

NSMutableArray를 선언하고 초기화 후에 자료를 삽입해야 사용할 수 있다. 먼저 선언 부분이다. @property ( nonatomic , strong ) NSMutableArray *menuName; 그다음 m 파일에서 @synthesize 한다. @synthesize menuName = _menuName ; - ( void )viewDidLoad 에서 배열을 초기화 하고 자료를 삽입한다. 초기화와 할당을 한다. self . menuName = [[ NSMutableArray alloc ] init ]; 자료의 삽입은 이렇게 한다. [ self . menuName addObject :@"삽입할 자료"]; 삽입여부 확인은 로그를 찍는다. NSLog ( @"menuname count: %d" , [ self . menuName count ]); 중요한 점 : 추가 가능한 것으로 선언(Mutable), 초기화 및 할당(alloc, init) 위 두가지가 빠져서 삽질을 조금 하였습니다.

iOS 에서 JSON 결과 가져오기

이미지
iOS 5 부터 JSON을 처리하기 위한 NSJSONSerialization 이 추가되어 있습니다. 이를 활용하여 사용하는 방법입니다. 코드는 몇줄 되지 않습니다. 먼저 request를 작성합니다. NSURLReauest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"주소"]]; request 결과를 받기 위한 response를 작성합니다. NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; JSON 데이터를 받기 위한 NSArray를 선언합니다. NSError *jsonParsingError = nil; NSArray *receiveArray = [NSJSONSerialization JSONObjectWithData:response option:0 error:&jsonParsingError]; 루프를 돌면서 자료를 처리합니다. NSDictory *JSON_Data; for (int i=0; i < [receiveArray count]; i++) {   JSON_Data = [receiveArray objectAtIndex:i];   NSLog{"Name: %@, price:%@", [JSON_Data objectForKey:"@name"], [JSON_Data objectForKey:@"price"]); } 위와 같이 작성한 결과를 돌려보니 잘 나옵니다. 

MYSQL 에서 자료를 가져와 JSON으로 Return하는 PHP

Mysql 디비에서 자료를 검색하여 Json 형식으로 리턴해주는 PHP 웹모듈을 만들어 보았다. 먼저 쿼리문 SELECT name, price FROM table 디비 연결부분은 이렇게 $con = mysql_connect("localhost", "계정", "암호"); if (!$con) {   die('연결 안됨: '.mysql_error()); } else {   mysql_select_db("디비명"); } 결과를 받을 배열 선언 $return_array = array(); $result = mysql_query("쿼리문"); 루프 돌면서 결과를 배열에 삽입 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {   $row_array['name'] = $row['name'];   $row_array['price'] = $row['price'];   array_push($return_array, $row_array); } 배열을 Json 형식으로 출력 echo json_encode($return_array); mysql_free_result($result); mysql_close($con); 이렇게 작성하고 웹서버에 올리고 돌려 보았더니 잘나오네요.

Mysql 계정과 Database 만들기

1. mysqll을 root 권한으로 접속한다. # mysql -u root -p password: 암호를 입력한다. 2. 데이터베이스를 선택한다. mysql> use mysql; 3. user 테이블에 계정과 패스워드를 삽입한다. mysql> insert into user(host, user, password) values('localhost', '계정', password('암호')); 4. mysql db 테이블의 필드 수 확인 mysql> desc db; 5. db 테이블에서 사용할 db와 계정을 연결하고 필드 수만큼 접근권한을 부여한다. mysql> insert into db values('localhost', db명, 계정, 'Y'); 단, 'Y'는 desc db 결과로 나온 필드 수만큼 입력해야 한다. 6. 추가한 내용을 적용 mysql> flush privileges; 위와 같이 한 다음 생성한 계정으로 로그인 되면 성공이다.

UITableView에서 Cell을 선택하고 해제할 때

셀을 선택했을 때 아래와 같은 메소드를 사용한다. -( void )tableView:( UITableView *)tableView didSelectRowAtIndexPath:( NSIndexPath *)indexPath {     // 셀을 선택했을 때     NSInteger row = [indexPath row ];     데이터리스트에서 선택된 row 값을 처리하면 된다. } 셀을 선택하면 배경색이 디폴트로 설정했을 때 파란색이 된다. 한번 더 선택하면 배경색이 기본색으로 바뀌면서 해제된다. 이때 사용되는 메소드가 아래와 같다. -( void )tableView:( UITableView *)tableView didDeselectRowAtIndexPath:( NSIndexPath *)indexPath {     // 셀 선택을 취소했을 때     NSInteger row = [indexPath row ];     데이터리스트에서 선택된 row값을 처리한다. } 

맥북 화면 캡쳐 방법

맥북의 화면 캡쳐 방법을 알아보자. 보통 윈도우는 스크린캡쳐 버튼을 클릭하면 클립보드에 캡쳐한 화면이 들어가고 이를 그래픽 관련 프로그램으로 붙여넣기 하여 사용한다. 하지만 맥북은 화면캡쳐 버튼이 없다. 전체 캡쳐 : Command + Shift + 3 영역 캡쳐 : Command + Shift + 4 전체 캡쳐를 하면 전체화면을 png 파일로 바탕화면에 저장한다. 영역 캡쳐를 하면 마우스 커서가 + 표시로 바뀌면서 좌표 숫자가 나타난다. 영역을 지정하면 영역화면을 png 파일로 바탕화면에 저장한다. 이 저장된 파일을 그래픽 도구로 수정하면 된다. Seashore 는 작고 강력한 프로그램이지만 기능이 많지는 않다.

UITableView 사용방법

이미지
1. 스토리보드에 테이블뷰를 추가한다. 2. 데이터소스와 델리게이트를 뷰콘트롤러와 연결한다.   아래와 같이 뷰콘트롤러와 연결한다. 이게 빠져서 한참을 헤매인 적이 있다. 3. 테이블뷰의 속성을 설정한다.   색 표시 된 곳의 설정을 해야 한다.   특히 Identifier의 값을 나중에 사용해야 하므로 유일한 값으로 설정하고   Style은 Subtitle로 설정한 이유는 이미지, 타이틀, 세부내역을 표시하기 위해서 이다. 4. 헤더파일을 설정한다. #import <UIKit/UIKit.h> @interface nemesisViewController : UIViewController < UITableViewDelegate , UITableViewDataSource > @property ( nonatomic , strong ) NSArray *menuImages; @property ( nonatomic , strong ) NSArray *menuName; @property ( nonatomic , strong ) NSArray *menuPrice; @end 적색으로 표시한 부분을 추가한다. 5. 변수 동기화 내용을 추가한다. @implementation nemesisViewController 바로 아래 적색글자를 추가한다. @synthesize menuImages = _menuImages ; @synthesize menuName = _menuName ; @synthesize menuPrice = _menuPrice ; 6. 시작 메소드에 값을 강제로 추가한다. - ( void )viewDidLoad {     [ super viewDidLoad ]; // Do any additional set...