- 검색바를 하나 놓으시구 검색버튼이 눌렸을때
NSString *source = [searchBar text];
[searchBar resignFirstResponder];
NSError *error = nil;
NSStringEncoding encoding;
NSString *url = [NSString stringWithFormat:@"http://maps.google.co.kr/maps/geo?q=%@&output=csv",
[source stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSString *locationStr = [NSString stringWithContentsOfURL:[NSURL URLWithString:url]
usedEncoding:&encoding
error:&error];
- NSArray *items = [locationStr componentsSeparatedByString:@","];
CLLocationCoordinate2D mCoordinate;
if ([items count] >= 4 && [[items objectAtIndex:0] isEqualToString:@"200"]) {
mCoordinate.latitude = [[items objectAtIndex:2] doubleValue];
mCoordinate.longitude = [[items objectAtIndex:3] doubleValue];
}else{
//검색 실패 일경우
UIAlertView *view = [[UIAlertView alloc]
initWithTitle:@"알림"
message:@"검색어가 부정확 합니다"
delegate:self
cancelButtonTitle:@"닫기"
otherButtonTitles:nil];
[view show];
[view release];
}
- [self dropPinAnnotationByCoordinate:mCoordinate];
위의 드랍핀어노태이션은 제가 만든 함수 이구요
어노테이션을 놓으시려면 즉 핀을 위치에 지정하게 하시려면viewForAnnotation을 정의
2011년 1월 24일 월요일
google API search
라벨:
api,
google,
objective-c
2011년 1월 20일 목요일
objective c memory manage
+ 오브젝티브시(Objective-C) 메모리 관리 기본 설명
일단 아이폰 개발자의 유명한 카페 '맥부기' 카페를 가입하고 '문씨'라는 분의 메모리 강좌를 읽는다. 내가 서점가서 아이폰, 오브젝티브시 관련 서적을 몇권 읽어봤는데 이 분의 강좌보다 못한것 같다. (이분의 강좌로 설명 때웁니다. ^ ^;)
+ 오브젝티브시(Objective-C) 메모리 관리 기본규칙
나는 위의 규칙을 명확히 이해하고 난 후 오브젝티브시의 메모리관리를 이해할 수 있었다. 함수내에서 쓰는 객체들은 무조건 autorelease~! 이것만 명심해도 많은 메모리 관리 고민이 해결되었다.
+ 오브젝티브시(Objective-C) 메모리 관리에 도움되는 두가지 툴
1. 인스트루먼트(Instrument)
x-code를 쓰다보면 메인 에디터툴 말고 유용한 도구가 많이 있는데, 인스트루먼트는 메모리 누수를 체크해주고 기타 여러가지 메모리 관리를 모니터링 해준다. 인스트루먼트를 실행하면 Record 가 되면서 어플이 실행되는데 어플의 이런저런 기능을 실행하다가 누수가 발생되면 빨간 그래프로 누수 현황을 알려준다. 그림 섞은 자세한 설명은 다음 기회에..
2. Build And Analyze 기능 사용
x-code의 신기한 기능중 하나인데 x-code에서 Build > Build And Analyze 를 실행하면 메모리 누수 흐름을 화살표로 보여준다. 그래서 어디를 고쳐야 메모리 누수가 없겠구나 라는것을 짐작할 수 있다. 그림 섞인 자세한 설명은 일단 카페 검색으로..^ ^;
+ 결론
사실 메모리 관리 개념 자체가 없었던 자바 개발자로 처음 Objective-C 쓸때는, 마치 자동차의 수동변속기 다루는 것처럼 어려워했고 무서워하기도 했다. 그러나 위의 메모리 관리 이론을 알고, 메모리 관리 규칙을 알고, 메모리 관리에 도움되는 두가지 툴을 알았더니 전혀 무서울게 없었다. 오히려 메모리 관리를 내가 직접하니 뿌듯했고, 프로그램도 더 효율적으로 거듭나는것 같았다.
덧) "Apple에서 제공하는 동영상을 보고 있는데, 지금은 Optimizing 쪽을 보고 있습니다.
autorelease에 대한 내용이 있었는데, 가능하면 사용하지 말라고 하네요.
10배의 속도 차이가 있다고 합니다.편한만큼 내놓아야하는게 있나봅니다." <- 어느분의 정보?인데..이 의견이 사실인가요~? ^ ^;
일단 아이폰 개발자의 유명한 카페 '맥부기' 카페를 가입하고 '문씨'라는 분의 메모리 강좌를 읽는다. 내가 서점가서 아이폰, 오브젝티브시 관련 서적을 몇권 읽어봤는데 이 분의 강좌보다 못한것 같다. (이분의 강좌로 설명 때웁니다. ^ ^;)
http://www.blogger.com/mcbugi/71504
http://www.blogger.com/mcbugi/71571
http://www.blogger.com/mcbugi/71571
http://www.blogger.com/mcbugi/71571
http://www.blogger.com/mcbugi/71571
+ 오브젝티브시(Objective-C) 메모리 관리 기본규칙
1. 함수내에서 쓰는 객체들은 전부 오토릴리즈(autorelease)로 한다.
1. alloc init 과 release무더기면 코드만 해맨다
2. 전역 변수는 지정할때 리테인카운트를 하나 올린고 안쓸때 해제한다.
1. 계속 가지고 있을것이니 retain, 더이상 안쓸때는 release!
3. 전역 변수에 객체를 사용하다가 해제(release)를 하면 미련없이 nil처리 (변수 = nil;)하자
1. release하고나면 반드시 변수 = nil; 해서 이후에 실수로 접근해도 문제없다.
4. 프로퍼티는 전역 변수가 아니다!
1. self.title과 title, 헤깔리지 말자.
5. 다른 객체에 전달하는거, 알아서 하겠지. 신경쓰지 말자.
1. NSMutableArray같은 관리 객체에 넣어둔거 해제될때 알아서 내용도 해제 시킨다.
6. retainCount함수로 일일이 확인해보지 말자 괜히 헤깔린다.
1. 상황에 따라 예상보다 더 나오는 경우도 있습니다 그만큼 더 해제 시킨다고 해매지 마세요.
7. 내가 만든 함수도 객체를 돌려줄땐 오토릴리즈로 돌려주자
출처: 문씨의 메모리강좌(1) http://cafe.naver.com/mcbugi/71504
1. alloc init 과 release무더기면 코드만 해맨다
2. 전역 변수는 지정할때 리테인카운트를 하나 올린고 안쓸때 해제한다.
1. 계속 가지고 있을것이니 retain, 더이상 안쓸때는 release!
3. 전역 변수에 객체를 사용하다가 해제(release)를 하면 미련없이 nil처리 (변수 = nil;)하자
1. release하고나면 반드시 변수 = nil; 해서 이후에 실수로 접근해도 문제없다.
4. 프로퍼티는 전역 변수가 아니다!
1. self.title과 title, 헤깔리지 말자.
5. 다른 객체에 전달하는거, 알아서 하겠지. 신경쓰지 말자.
1. NSMutableArray같은 관리 객체에 넣어둔거 해제될때 알아서 내용도 해제 시킨다.
6. retainCount함수로 일일이 확인해보지 말자 괜히 헤깔린다.
1. 상황에 따라 예상보다 더 나오는 경우도 있습니다 그만큼 더 해제 시킨다고 해매지 마세요.
7. 내가 만든 함수도 객체를 돌려줄땐 오토릴리즈로 돌려주자
출처: 문씨의 메모리강좌(1) http://cafe.naver.com/mcbugi/71504
나는 위의 규칙을 명확히 이해하고 난 후 오브젝티브시의 메모리관리를 이해할 수 있었다. 함수내에서 쓰는 객체들은 무조건 autorelease~! 이것만 명심해도 많은 메모리 관리 고민이 해결되었다.
+ 오브젝티브시(Objective-C) 메모리 관리에 도움되는 두가지 툴
1. 인스트루먼트(Instrument)
x-code를 쓰다보면 메인 에디터툴 말고 유용한 도구가 많이 있는데, 인스트루먼트는 메모리 누수를 체크해주고 기타 여러가지 메모리 관리를 모니터링 해준다. 인스트루먼트를 실행하면 Record 가 되면서 어플이 실행되는데 어플의 이런저런 기능을 실행하다가 누수가 발생되면 빨간 그래프로 누수 현황을 알려준다. 그림 섞은 자세한 설명은 다음 기회에..
2. Build And Analyze 기능 사용
x-code의 신기한 기능중 하나인데 x-code에서 Build > Build And Analyze 를 실행하면 메모리 누수 흐름을 화살표로 보여준다. 그래서 어디를 고쳐야 메모리 누수가 없겠구나 라는것을 짐작할 수 있다. 그림 섞인 자세한 설명은 일단 카페 검색으로..^ ^;
+ 결론
사실 메모리 관리 개념 자체가 없었던 자바 개발자로 처음 Objective-C 쓸때는, 마치 자동차의 수동변속기 다루는 것처럼 어려워했고 무서워하기도 했다. 그러나 위의 메모리 관리 이론을 알고, 메모리 관리 규칙을 알고, 메모리 관리에 도움되는 두가지 툴을 알았더니 전혀 무서울게 없었다. 오히려 메모리 관리를 내가 직접하니 뿌듯했고, 프로그램도 더 효율적으로 거듭나는것 같았다.
덧) "Apple에서 제공하는 동영상을 보고 있는데, 지금은 Optimizing 쪽을 보고 있습니다.
autorelease에 대한 내용이 있었는데, 가능하면 사용하지 말라고 하네요.
10배의 속도 차이가 있다고 합니다.편한만큼 내놓아야하는게 있나봅니다." <- 어느분의 정보?인데..이 의견이 사실인가요~? ^ ^;
2010년 12월 29일 수요일
Iphone Icon Size
Heres the images you need to make to support all current devices
- iTunesArtwork – Icon for iTunes AdHoc distribution (512×512)
- icon@2x.png – Home screen icon for iPhone 4 (114×114)
- icon-72.png – Home screen icon for iPad (72×72)
- icon-Small@2x.png – Settings/Spotlight icon for iPhone 4 (58×58)
- icon.png – Home screen icon for iPhone 3 (57×57)
- icon-Small-50.png – Spotlight icon for iPad (50×50)
- icon-Small.png - Settings/Spotlight icon for iPhone 3 (29×29)
iAd & AdMob feature ADD
AdViewController.h
AdViewController.m
The usage is very simple, #import AdViewController.h in you Layer's .h and add the delegate protocol AdViewControllerDelegate
And in your layer's .m add this
#import <UIKit/UIKit.h>
#import <iAd/iAd.h>
#import "AdMobDelegateProtocol.h"
@protocol AdViewControllerDelegate;
@interface AdViewController : UIViewController <ADBannerViewDelegate, AdMobDelegate>
{
id <AdViewControllerDelegate> delegate;
id adBannerView;
AdMobView* adMobAd;
}
@property (nonatomic, assign) id <AdViewControllerDelegate> delegate;
- (id)initWithMasterView:(UIView*)masterView;
- (void)rotateBannerView:(UIDeviceOrientation)toDeviceOrientation;
@end
@protocol AdViewControllerDelegate
- (void)adController:(AdViewController*)controller didLoadiAd:(id)iadBanner;
- (void)adController:(AdViewController*)controller didFailedToRecieveiAd:(id)iadBanner;
- (void)adController:(AdViewController*)controller didLoadAdMobAd:(AdMobView*)adMobBanner;
- (void)adController:(AdViewController*)controller didFailedToRecieveAdMobAd:(AdMobView*)adMobBanner;
@end
AdViewController.m
#import "AdViewController.h"
#import "cocos2d.h"
#import "AdMobView.h"
@implementation AdViewController
@synthesize delegate;
- (UIDeviceOrientation)currentOrientation
{
return [[CCDirector sharedDirector] deviceOrientation];
}
- (id) initWithMasterView:(UIView*) masterView
{
if( nil != (self = [super init]) )
{
[self setView:masterView];
//Initialize the class manually to make it compatible with iOS < 4.0
Class classAdBannerView = NSClassFromString(@"ADBannerView");
if (classAdBannerView != nil)
{
adBannerView = [[classAdBannerView alloc] initWithFrame:CGRectZero];
[adBannerView setDelegate:self];
[adBannerView setRequiredContentSizeIdentifiers: [NSSet setWithObjects:
ADBannerContentSizeIdentifier320x50,
ADBannerContentSizeIdentifier480x32, nil]];
[self.view addSubview:adBannerView];
[self rotateBannerView:[self currentOrientation]];
[adBannerView setHidden:YES];
}
else
{
//Request an AdMob Ad
adMobAd = [AdMobView requestAdOfSize:ADMOB_SIZE_320x48 withDelegate:self];
[adMobAd retain];
}
}
return self;
}
- (void)rotateBannerView:(UIDeviceOrientation)toDeviceOrientation
{
if (adBannerView)
{
if (UIDeviceOrientationIsLandscape(toDeviceOrientation))
[adBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifier480x32];
else
[adBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifier320x50];
[(UIView*)adBannerView setTransform:CGAffineTransformIdentity];
//Set the transformation for each orientation
switch (toDeviceOrientation)
{
case UIDeviceOrientationPortrait:
{
[(UIView*)adBannerView setCenter:CGPointMake(160, 455)];
}
break;
case UIDeviceOrientationPortraitUpsideDown:
{
[(UIView*)adBannerView setTransform:CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(180))];
[adBannerView setCenter:CGPointMake(160, 25)];
}
break;
case UIDeviceOrientationLandscapeLeft:
{
[(UIView*)adBannerView setTransform:CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90))];
[adBannerView setCenter:CGPointMake(16, 240)];
}
break;
case UIDeviceOrientationLandscapeRight:
{
[(UIView*)adBannerView setTransform:CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(-90))];
[adBannerView setCenter:CGPointMake(304, 240)];
}
break;
default:
break;
}
}
if (adMobAd)
{
[adMobAd setTransform:CGAffineTransformIdentity];
//Set the transformation for each orientation
switch (toDeviceOrientation)
{
case UIDeviceOrientationPortrait:
{
[adMobAd setCenter:CGPointMake(160, 456)];
}
break;
case UIDeviceOrientationPortraitUpsideDown:
{
[adMobAd setTransform:CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(180))];
[adMobAd setCenter:CGPointMake(160, 24)];
}
break;
case UIDeviceOrientationLandscapeLeft:
{
[adMobAd setTransform:CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90))];
[adMobAd setCenter:CGPointMake(24, 240)];
}
break;
case UIDeviceOrientationLandscapeRight:
{
[adMobAd setTransform:CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(-90))];
[adMobAd setCenter:CGPointMake(296, 240)];
}
break;
default:
break;
}
}
}
#pragma mark -
#pragma mark ADBannerViewDelegate
- (BOOL)allowActionToRun
{
return YES;
}
- (void) stopActionsForAd
{
//Pause background music here
[adBannerView setHidden:YES];
[[CCDirector sharedDirector] stopAnimation];
[[CCDirector sharedDirector] pause];
}
- (void) startActionsForAd
{
//Resume background music here
[self rotateBannerView:[self currentOrientation]];
[[UIApplication sharedApplication] setStatusBarOrientation:(UIInterfaceOrientation)[self currentOrientation]];
[adBannerView setHidden:NO];
[[CCDirector sharedDirector] stopAnimation];
[[CCDirector sharedDirector] resume];
[[CCDirector sharedDirector] startAnimation];
}
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave
{
BOOL shouldExecuteAction = [self allowActionToRun];
if (!willLeave && shouldExecuteAction)
{
[self stopActionsForAd];
}
return shouldExecuteAction;
}
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
[adBannerView setHidden:NO];
[delegate adController:self didLoadiAd:banner];
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
[adBannerView setHidden:YES];
[delegate adController:self didFailedToRecieveiAd:banner];
}
- (void)bannerViewActionDidFinish:(ADBannerView *)banner
{
[self startActionsForAd];
}
#pragma mark -
#pragma mark AdMobDelegate methods
- (NSString *)publisherIdForAd:(AdMobView *)adView
{
return @"your_admob_publisher_id"; //replace it with you publisher id
}
- (UIViewController *)currentViewControllerForAd:(AdMobView *)adView {
return self;
}
- (UIColor *)adBackgroundColorForAd:(AdMobView *)adView
{
return [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; // this should be prefilled; if not, provide a UIColor
}
- (UIColor *)primaryTextColorForAd:(AdMobView *)adView
{
return [UIColor colorWithRed:1 green:1 blue:1 alpha:1]; // this should be prefilled; if not, provide a UIColor
}
- (UIColor *)secondaryTextColorForAd:(AdMobView *)adView
{
return [UIColor colorWithRed:1 green:1 blue:1 alpha:1]; // this should be prefilled; if not, provide a UIColor
}
- (NSArray *)testDevices
{
return [NSArray arrayWithObjects: ADMOB_SIMULATOR_ID, nil];
}
- (void)didReceiveAd:(AdMobView *)adView
{
CCLOG(@"AdMob: Did receive ad");
[self rotateBannerView:[self currentOrientation]];
[self.view addSubview:adMobAd];
[delegate adController:self didLoadAdMobAd:adView];
}
// Sent when an ad request failed to load an ad
- (void)didFailToReceiveAd:(AdMobView *)adView
{
CCLOG(@"AdMob: Did fail to receive ad");
[adMobAd removeFromSuperview];
[adMobAd release];
adMobAd = nil;
[delegate adController:self didFailedToRecieveAdMobAd:adView];
}
#pragma mark -
#pragma mark Memory Management
- (void) dealloc
{
if (adMobAd)
{
[adMobAd setDelegate:nil];
[adMobAd removeFromSuperview];
[adMobAd release];
adMobAd = nil;
}
if (adBannerView)
{
[adBannerView setDelegate:nil];
[adBannerView removeFromSuperview];
[adBannerView release];
adBannerView = nil;
}
[super dealloc];
}
@end
The usage is very simple, #import AdViewController.h in you Layer's .h and add the delegate protocol AdViewControllerDelegate
#import "AdViewController.h"
@interface Menu : CCLayer <AdViewControllerDelegate>
{
AdViewController *adController;
}
And in your layer's .m add this
- (void)onEnter
{
[super onEnter];
adController = [[AdViewController alloc] initWithMasterView:[[CCDirector sharedDirector] openGLView]];
[adController setDelegate:self];
}
- (void)onExit
{
//Completely remove the controller
[adController setDelegate:nil];
[adController release];
adController = nil;
[super onExit];
}
- (void)adController:(AdViewController*)controller didLoadiAd:(id)iadBanner;
{
//Do something when the ad loads, like moving objects.
}
- (void)adController:(AdViewController*)controller didFailedToRecieveiAd:(id)iadBanner;
{
//Do something when the ad fails to load, like moving objects.;
}
- (void)adController:(AdViewController*)controller didLoadAdMobAd:(AdMobView*)adMobBanner;
{
//Do something when the ad loads, like moving objects.
}
- (void)adController:(AdViewController*)controller didFailedToRecieveAdMobAd:(AdMobView*)adMobBanner;
{
//Do something when the ad fails to load, like moving objects.
}
2010년 12월 23일 목요일
TableView Header의 font SIZE 및 Color 설정방법
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
// create the parent view that will hold header Label
UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 44.0)];
// create the button object
UILabel * headerLabel = [[UILabel alloc] initWithFrame:CGRectZero];
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.opaque = NO;
headerLabel.textColor = [UIColor blackColor];
headerLabel.highlightedTextColor = [UIColor whiteColor];
headerLabel.font = [UIFont boldSystemFontOfSize:20];
headerLabel.frame = CGRectMake(10.0, 0.0, 300.0, 44.0);
// If you want to align the header text as centered
// headerLabel.frame = CGRectMake(150.0, 0.0, 300.0, 44.0);
headerLabel.text = <Put here whatever you want to display> // i.e. array element
[customView addSubview:headerLabel];
return customView;
}
Furthermore, it is advisable to add heightForHeaderInSection function
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 44.0;
}
2010년 12월 12일 일요일
Iphone Programming recommend curriculum
0. Reference Guide Reading.
* IOS Application Programming Guide 정독하기(Apple Homepage)
-----Objective-C-----
1. Objective-C 2.0
2. FrameWork
- Foundation
- UIKit
----- ETC -----
-----C Language-----
3. Media
- CoreAudio (Difficult)
- OpenGL (Very Difficult)
* unity3d.com (좀더 쉽게 3D Game을 만들려면 UNITY3D 툴을 공부하자)
Generally 10years...
T아카데미에서 수업을 마치고 마지막시간에 이창신 선생님께서 추천해주신 가이드이다.
중요하다고 생각해서 한자도 빼먹지않고 필기한걸 공유한다.
나처럼 어디서부터 어떻게 공부를 해야할지 막막해할 다른 개발자분들을 위해서 ㅎㅎ
정말 개발공부하면서 느낀건데 사실 영어가 제일먼저 되야한다는 슬픈 현실이다... ㅠㅠ
그런점에서는 한국이 넘 불리한거 아닌가 ㅠㅠ
왜 프로그래밍언어는 영어 밖에없는것인가....
한글로 프로그래밍언어 만들면 어려울라나? ㅎㅎ
예를들어
> int a = 0;
float b = 0.0;
a++;
return 0;
>> 정수 가 = 0;
실수 나 = 0.0;
가++;
반환 0;
ㅋㅋㅋ 영어에 익숙해져있어서 그런지는 몰라도 한글이 어색하긴하다.
그리고 한글이 2byte이다 보니 용량도 많이 차지할것 같기도하고 ㅎ
언어야 어떻게 됐든간에 가이드 만큼은 한글로도 만들어줬으면 좋겠다..
영어 공부는 도대체 어떻게 해야하는거임 ㅠㅠ
문법 공부하고 단어외우면 문장 해석을 하다보면 리스닝이 안되고 ㅠ
리스닝이 좀 된다싶으면 말이 안떨어지고 ㅠ
말이 좀 된다 싶으면 어느정도 된다 싶다가도 안쓰면 또 까먹고 ㅠ
나한테는 영어가 젤 어려운것 같아서 슬픈현실...
하지만 언젠가는 영어를 잘하게 될것이야! 파이팅
마지막으로 이창신 선생님께서 마지막으로 해주신말씀은
공부할 것은 많으니 조급해하지말고 커리큘럼대로 천천히 공부하다 보면 어느새 고수가 되어있을것이다. 맞나?? ㅎ
* IOS Application Programming Guide 정독하기(Apple Homepage)
-----Objective-C-----
1. Objective-C 2.0
2. FrameWork
- Foundation
- UIKit
- MapKit
- EventKit
- AddressKit
- GameKit
* 익숙해지는데 대략 1~2년 정도 걸림
----- ETC -----
2-1. CoreService
2-2. CoreOS
* CoreData 등 몇개만 사용됨 -----C Language-----
3. Media
- CoreAudio (Difficult)
- OpenGL (Very Difficult)
* unity3d.com (좀더 쉽게 3D Game을 만들려면 UNITY3D 툴을 공부하자)
Generally 10years...
T아카데미에서 수업을 마치고 마지막시간에 이창신 선생님께서 추천해주신 가이드이다.
중요하다고 생각해서 한자도 빼먹지않고 필기한걸 공유한다.
나처럼 어디서부터 어떻게 공부를 해야할지 막막해할 다른 개발자분들을 위해서 ㅎㅎ
정말 개발공부하면서 느낀건데 사실 영어가 제일먼저 되야한다는 슬픈 현실이다... ㅠㅠ
그런점에서는 한국이 넘 불리한거 아닌가 ㅠㅠ
왜 프로그래밍언어는 영어 밖에없는것인가....
한글로 프로그래밍언어 만들면 어려울라나? ㅎㅎ
예를들어
> int a = 0;
float b = 0.0;
a++;
return 0;
>> 정수 가 = 0;
실수 나 = 0.0;
가++;
반환 0;
ㅋㅋㅋ 영어에 익숙해져있어서 그런지는 몰라도 한글이 어색하긴하다.
그리고 한글이 2byte이다 보니 용량도 많이 차지할것 같기도하고 ㅎ
언어야 어떻게 됐든간에 가이드 만큼은 한글로도 만들어줬으면 좋겠다..
영어 공부는 도대체 어떻게 해야하는거임 ㅠㅠ
문법 공부하고 단어외우면 문장 해석을 하다보면 리스닝이 안되고 ㅠ
리스닝이 좀 된다싶으면 말이 안떨어지고 ㅠ
말이 좀 된다 싶으면 어느정도 된다 싶다가도 안쓰면 또 까먹고 ㅠ
나한테는 영어가 젤 어려운것 같아서 슬픈현실...
하지만 언젠가는 영어를 잘하게 될것이야! 파이팅
마지막으로 이창신 선생님께서 마지막으로 해주신말씀은
공부할 것은 많으니 조급해하지말고 커리큘럼대로 천천히 공부하다 보면 어느새 고수가 되어있을것이다. 맞나?? ㅎ
라벨:
apple,
coredata,
curriculum,
ios,
Iphone,
objective-c,
objectivec,
programming
피드 구독하기:
글 (Atom)