ios2016. 6. 5. 15:36

stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding


이 부분이 ios9.0 에서 warning이다..


stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]


이렇게 수정하면 된다.

'ios' 카테고리의 다른 글

daummap(다음맵) iOS 현위치 안될때..  (0) 2016.03.03
apns xampp( php ) 연동해서 구축하기  (0) 2015.01.26
mac에서 사용할수 있는 UML 툴  (0) 2012.11.25
APXML 사용법  (0) 2012.11.22
nib but the view outlet was not set.  (0) 2012.10.31
Posted by NeverTry
ios2016. 3. 3. 10:18

이부분을 안해서 안된거였네요;;;;ㅠ

NSLocationWhenInUseUsageDescription 이 부분 추가하시면 됩니다.ㅠ



Posted by NeverTry
ios2015. 1. 26. 21:10

https://www.apachefriends.org/download.html

가서 xampp 설치 

(php , mysql , apache ) 다 설치될것이다. 

다 설치하고 아래의 위치로 이동          

xampp_start를 실행하면 실행될것이다. 실행하고 xampp-control을 열면

다 실행시킬필요는 없지만 실행시킨다. 

로컬디스크/xampp/htdocs/xampp로 이동시킨다.

index.html을 변경시킬것이다.

index.html 을 메모장으로 열어서 코드를 수정한다.

apns.pem 파일을 만든는건 찾아보면 나올꺼같은데...

(참고했던 사이트 : http://qnibus.com/blog/how-to-make-certification-for-apns/ ) <-- 감사합니다. 좋을글 올려주셔서


그리고 apns.pem파일은 현재 위치에다가 이동시킨다. 위에 그림에 보면 2번째라인에 4번째 파일이 보인다.(apns.pem)

코드는      아이군님의 블로그를 참조했다. ( http://theeye.pe.kr/archives/1454 )

<?php


$deviceToken = '67813b2...af1424b'; // 디바이스토큰ID 를 넣으면 된다.

$message = 'Message received from eye'; // 전송할 메시지 


// 개발용

$apnsHost = 'gateway.sandbox.push.apple.com';

$apnsCert = 'apns.pem'; <-   만든 pem를 넣으면 된다. (난 apns.pem으로 만들었다)


// 실서비스용

//$apnsHost = 'gateway.push.apple.com';

//$apnsCert = 'apns-production.pem';


$apnsPort = 2195;


$payload = array('aps' => array('alert' => $message, 'badge' => 0, 'sound' => 'default'));

$payload = json_encode($payload);


$streamContext = stream_context_create();

stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);


$apns = stream_socket_client('ssl://'.$apnsHost.':'.$apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);


if($apns)

{

  $apnsMessage = chr(0).chr(0).chr(32).pack('H*', str_replace(' ', '', $deviceToken)).chr(0).chr(strlen($payload)).$payload;

  fwrite($apns, $apnsMessage);

  fclose($apns);

}

?>

index.html을 바꾼 코드

<?php

 

$deviceToken = '64eb9af591e2674a2fedafdsfdfdd29ad0b30ffc2e2d0ddd2af2342jjfsd3ssd'; 

// 디바이스토큰ID  본인꺼 넣어야 함

$message = 'iphone push test'; // 전송할 메시지

 

// 개발용

$apnsHost = 'gateway.sandbox.push.apple.com';

$apnsCert = 'apns.pem';                  //이 파일은 C:\xampp\htdocs\xampp 에 위치한다.


// 실서비스용

//$apnsHost = 'gateway.push.apple.com';

//$apnsCert = 'apns-production.pem';

 

$apnsPort = 2195;

 

$payload = array('aps' => array('alert' => $message, 'badge' => 1, 'sound' => 'default'));

$payload = json_encode($payload);

 

$streamContext = stream_context_create();

stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

 

$apns = stream_socket_client('ssl://'.$apnsHost.':'.$apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);

 

if($apns)

{

  $apnsMessage = chr(0).chr(0).chr(32).pack('H*', str_replace(' ', '', $deviceToken)).chr(0).chr(strlen($payload)).$payload;

  fwrite($apns, $apnsMessage);

  fclose($apns);

}

?>

<html>

<head>

<meta name="author" content="Kai Oswald Seidler">

<meta http-equiv="cache-control" content="no-cache">

<!--<?php include("lang/".file_get_contents("lang.tmp").".php"); ?> -->

<title>XAMPP <?php include('.version');?></title>


<frameset rows="74,*" marginwidth="0" marginheight="0" frameborder="0" border="0" borderwidth="0">

    <frame name="head" src="head.php" scrolling=no>

<frameset cols="150,*" marginwidth="0" marginheight="0" frameborder="0" border="0" borderwidth="0">

    <frame name="navi" src="navi.php" scrolling=no>

    <frame name="content" src="start.php" marginwidth=20>

</frameset>

</frameset>

</head>

<body bgcolor=#ffffff>

</body>

</html>

실행할 페이지

http://127.0.0.1/xampp/index.php  <-- 이걸 실행하면 됨~~~


Posted by NeverTry
ios2012. 11. 25. 17:12

http://argouml.tigris.org



'ios' 카테고리의 다른 글

daummap(다음맵) iOS 현위치 안될때..  (0) 2016.03.03
apns xampp( php ) 연동해서 구축하기  (0) 2015.01.26
APXML 사용법  (0) 2012.11.22
nib but the view outlet was not set.  (0) 2012.10.31
info.pList  (0) 2012.10.28
Posted by NeverTry
ios2012. 11. 22. 13:43

java XDocument를 사용해 보신 분이면 쉽게 사용이 가능합니다.

 

1. 첨부한 소스나 아래 사이트에 가셔셔 먼저 소스를 받으세요.

    http://github.com/arashpayan/apxml/

 

2. 받은 소스를 모두 class에 추가 합니다.

 

3. xml 파싱을 구현하는 소스에 APXML.h 파일을 import 합니다.

    #import "APXML.h"

 

4. 파싱을 하고자 하는 xml url을 아래와 같이 NSString으로 받아 옵니다.

   NSString* xmlStr = [NSString stringWithContentsOfURL:[NSURL URLWithString:xmlUrl] encoding:NSUTF8StringEncoding error:nil];

 

5. APDocument 객체를 위에서 할당된 NSString을 사용하여 객체를 생성 합니다.

   APDocument* doc = [APDocument documentWithXMLString:xmlStr];

 

6. rootElement를 사용하여 xml 문서의 root를 가져옵니다.

   APElement* rootElement = [doc rootElement];

   rootElement는 하위 엘리먼트들을 모두 포함하고 있습니다.

   이 rootElement를 베이스로 하위 엘리먼트 요소를 파싱해서 사용 하시면 됩니다.

파싱은 아래와 같이 하시면 됩니다.

NSArray* childElements = [rootElement childElements];


for(APElement* child in childElements) {

NSArray* memberElements = [child childElements];

MEMBER* obj = [[MEMBER alloc] init];

for(APElement* member in memberElements) {

// obj 객체 프로퍼티 할당

}

[members addObject:obj];

[obj release];

}

// 엘리먼트명을 가져옵니다.

// 예) <MEMBER id="1"> 에서 값 : MEMBER

[child name]

 

// 엘리먼트 내 Attribute의 값을 가져옵니다.

// 예) <MEMBER id="1"> 에서 값 : 1

[child valueForAttributeNamed:@"id"]

 
// 엘리먼트의 값을 가져옵니다.

// 예) <PHONE>010-0505-7575</PHONE> 에서 값 : 010-0505-7575

[child value]



[출처] APXML|작성자 딩이파파

'ios' 카테고리의 다른 글

apns xampp( php ) 연동해서 구축하기  (0) 2015.01.26
mac에서 사용할수 있는 UML 툴  (0) 2012.11.25
nib but the view outlet was not set.  (0) 2012.10.31
info.pList  (0) 2012.10.28
IPhone Error 메세지  (0) 2012.10.28
Posted by NeverTry
ios2012. 10. 31. 16:37

UIViewController _loadViewFromNibNamed:bundle:] loaded the "MemberController" nib but the view outlet was not set.

:view Outlet을 연결하지 않아서 발생하는 문제입니다.

뷰 연결하시면 문제해결 




'ios' 카테고리의 다른 글

mac에서 사용할수 있는 UML 툴  (0) 2012.11.25
APXML 사용법  (0) 2012.11.22
info.pList  (0) 2012.10.28
IPhone Error 메세지  (0) 2012.10.28
@autoreleasepool  (0) 2012.10.24
Posted by NeverTry
ios2012. 10. 28. 14:51

아이폰 어플리케이션의 기본정보.
어플리케이션을 사용하는데 있어서 필요한 기본정보는 어떤것이 있을까? 우선은 어플리케이션의 이름을 포함할 수 있다. 애플리케이션의 이름이 없다는 것은 내가 좋아하는 사람을 앞에두고도 이름을 몰라서 부르지 못하는 것과 같은 느낌일 것이다. 또한 애플리케이션을 대표하는 아이콘, 맨 처음으로 보여지는 기본 화면, 다양한 부가 기능을 어떻게 사요하는가 등이 있을 수 있다.


Info.pList 파일
모든 아이폰 애플리케이션에는 Info-pList 파일을 가지고 있다. Info-pList 파일은 Resources 폴더에서 '프로젝트명-Info-pList' 란 이름으로 되어 있을 것을 찾을 수 있다.


그림1. Info-pList 파일

기본적으로 12개의 항목의 정보를 포함하고 있다. 이들은 데이터를 구분하기 위한 키 값과, 실제적인 데이터가 들어가는 값으로 구분되어 있다. 이중에서 필요한 정보를 추가하거나, 삭제및 수정이 가능하다. 항목을 추가하기 위해서는 오른쪽에 있는 탭 부분을 클릭하면 된다. Info.pList 에서 사용가능한 기본정보 항목은 다음과 같다.

Application requires iPhone environment : 실행 가능한 아이폰 환경
Application users Wi-Fi : Wi-Fi 사용여부
Bundle creator OS Type code : 애플리케이션 개발자의 OS 코드
Bundle display name : 애플리케이션 아이콘에 나타나는 이름
Bundle identifier : 애플리케이션의 고유 식별자
Bundle name : 애플리케이션의 실제 이름
Bundle OS Type code : 애플리케이션 실행 OS 코드
Bundle version : 애플리케이션의 버전
Bundle version string. short : 구체적인 애플리케이션의 버전
Executable architectures : -
Executable file : 실행 가능한 파일
Get Info string : -
Icon already includes gloss and bevel effects : 아이콘 표시 효과 설정
Icon file : 아이콘 파일
Initial interface orientation : 기본 화면의 가로/세로형 설정
Localization native development region : -
Localized resources can be mixed : -
Main nib file base name : 기본 nib 파일
Renders with edge antialisasing : 안티앨리어싱 사용 설정
Renders with group opacity : 투명도 사용 설정
Required device capabilities : 사용가능한 장치를 설정
Status bar is initially hidden : 상태바를 표시 설정
Status bar style : 상태바 스타일 설정
Supported external accessory protocols : 확장 프로토콜 사용 설정
Upgrade other bundle identifier : 업그레이드를 위한 식별자
URL types : 커스텀 URL 사용 설정

애플리케이션의 기본정보는 자신의 개발하고 있는 프로젝트 상황에 맞추어 설정하도록 한다. 특히 'Required device capabilities' 의 항목은 다음과 같다.

telephony : 전화 통화가 가능해야 한다.
sms : 문자 기능을 필요하다.
still-camera : 카메라 장치가 있어야 한다.
auto-focus-camera : 자동 초점 기능을 사용해야 한다.
video-camera : 비디오 녹화가 가능해야 한다.
wifi : WiFi 를 사용해야 한다.
accelerometer : 가속도계를 사용한다.
location-services : 현재 위치를 제공하는 위치 서비스를 사용한다.
gps : GPS 기능을 사용한다.
magnetometer : 나침반 기능을 사용한다.
microphone : 마이크를 사용한다.
opengles-1 : OpenGL ES 1.1 을 사용한다.
opengles-2 : OpenGL ES 2.0 을 사용한다.


애플리케이션의 기본 설정은 사용자의 애플리케이션에 대한 신뢰와도 연결된다. 정확한 정보를 사용자에게 제공했을 때만이 사용자의 원망을 받는 일은 발생하지 않을 것이다.


펌 : [http://devist.tistory.com/75]

'ios' 카테고리의 다른 글

APXML 사용법  (0) 2012.11.22
nib but the view outlet was not set.  (0) 2012.10.31
IPhone Error 메세지  (0) 2012.10.28
@autoreleasepool  (0) 2012.10.24
objective c 용어  (1) 2012.10.24
Posted by NeverTry
ios2012. 10. 28. 14:48

Error : setValue : forUndefinedKey:
         This class is not key value coding-compliant for the key <class name> 
원인 : 어떤 컨트롤에 할당된 class 명이 잘못되었거나 명시되지 않은 경우 
해결방법 : IB에서 각각의 컨트롤에 할당된 class 명을 조사하여 수정한다. 
예 : tabbar controller를 사용하는 경우 각각의 tab 에 nib 파일을 매핑하는 것 만으로는 부족하다. 
     각각의 tab마다 해당 tab에 대응하는 class 명이 적절히 지정되었는지 class identifier를 조사한다. 


Error : unrecognized selector sent to instance ~ 
원인 : 보통 프로토콜 메소드를 잘못 구현한 경우 발생, 또는 컨트롤과 이벤트가 잘못 연결된 경우 
해결방법 : 해당 프로토콜 메소드를 찾아 수정 
예 : (UIImage *) 를  return 하는 함수에 (NSString *)를 return 하도록 구현한 경우 함수내에서 
     (UIImage *) 를 return하도록 수정 

Error : setText is deprecated ~ 
원인 : SDK의 이후버전에서 없어질,, 하지만 현재는 지원하기는 하는 속성값에 대한 경고 
해결방법 : 해당 메소드를 최신의 메소드, 최신의 속성으로 변경 
예 : cell.text 는 이전버전의 형태, 최신의 형태는 api reference를 찾아보면 cell.textLabel.text 로 
     나와있으므로 그 형태로 수정 

Error : expected specifier-qualifier-list before ~ 
원인 : interface 정의에서 property 지정이 잘못된 경우 
해결방법 : interface 정의와 property가 일치하는지 확인후 수정 
예 : 
  @interface LocalizeMeViewController : UIViewController { 
      IBOutlet UILabel * localeLabel; 
     IBOutlet UILabel * label1; 
  } 
  @property (nonatomic, retain) localeLabel; 
  @property (nonatomic, retain) UILabel * label1; 
  @end 
  위의 예에서 localeLabel은 UILabel * 형인데 property에서는 아무런 형표시 없이 속성지정 
  따라서 @property (nonatomic, retain) localeLabel; 이 부분을 
          @property (nonatomic, retain) UILabel* localeLabel; 로 수정 

Error : run time에 아무 에러없이 프로그램이 멈추는 경우 발생 
원인 : 잘못된 형 처리 
해결방법 : 잘못된 data type에 대해 처리하거나 제한 
예 : (NSString *)이 들어와야 할 자리에 (NSInteger)형이 실행시간에 들어올 경우 처리못하는 경우발생 


펌 : [http://blog.ohmynews.com/fervent/rmfdurrl/250082]

'ios' 카테고리의 다른 글

nib but the view outlet was not set.  (0) 2012.10.31
info.pList  (0) 2012.10.28
@autoreleasepool  (0) 2012.10.24
objective c 용어  (1) 2012.10.24
getter/setter  (0) 2012.10.24
Posted by NeverTry
ios2012. 10. 24. 17:21

메모리 참조 수 계산 방식(Reference counted Memory Management System)에서 쓰는 선언방식



MRR(Manual retain-release)

개발자에 의해서 의도적으로 관리되는 방식 (참조 수 계산방식)

ARC(Automatic Reference Count)

MRR과 같은 참조 수 계산방식을 사용하지만 컴파일시 적절한 메모리 관리 함수 호출문 넣어서 처리

GC(Garbage Collection)

더이상 참조되지 않은 객체를 자동으로 제거하는 방식으로 MMR, ARC와는 많이 다른 메타니즘을 제공한다.


펌 : [http://irondog.tistory.com/30]

'ios' 카테고리의 다른 글

info.pList  (0) 2012.10.28
IPhone Error 메세지  (0) 2012.10.28
objective c 용어  (1) 2012.10.24
getter/setter  (0) 2012.10.24
Objective c 기초 참고사이트  (0) 2012.10.23
Posted by NeverTry
ios2012. 10. 24. 10:29

assign : 지정한 객체에 메모리를 할당합니다.

retain : 지정한 객체의 값을 메모리에 저장합니다.

release : 지정한 객체를 메모리에서 삭제합니다.

autorelease : 객체에 autorelease 메시지를 전달하면, 객체가 소멸될 때 메모리에서도 자동 삭제됩니다.

이 개념을 Autorelease Pool이라 하는데 이에 대한 정의는 NSAutoreleasePool클래스에서 하고 있다.

drain : 지정한 객체를 메모리에서 비우는 기능입니다. release와 같이 지정한 객체에 대한 메모리를 삭제하는 역할을 하지만, autorelease pool에 있는 객체를 메모리에서 완전히 삭제할때 drain을 사용

nonatomic : 멀티스레드 환경에서 하나의 property에 여럿이 접근을 할 것인가에 대한 lock/unlock을 다루는 부분입니다. ios에서는 멀티스레드에서 작업할 일이 없으므로 대부분 nonatomic으로 선언하지만 멀티스레드로 작업을 하게 되어 여럿이 하나의 property에 접근 하게 되면 atomic속성을 주면 된다.

copy : 참조 변수 카운트를 1 올리는 속성(대부분 object에 사용)

readonly : 읽기만 가능한 property생성 (getter만)

readwrite : 읽기 쓰기가 가능한 property생성  (getter / setter)

'ios' 카테고리의 다른 글

IPhone Error 메세지  (0) 2012.10.28
@autoreleasepool  (0) 2012.10.24
getter/setter  (0) 2012.10.24
Objective c 기초 참고사이트  (0) 2012.10.23
Java에서 Objective c  (0) 2012.10.23
Posted by NeverTry