CoreData를 처음 접하고 예전의 사용 습관 때문에 작성하게된 BaseRepository...

목적은 CRUD 는 걍 했으면 좋겠다.. 입니다.

 

Header

#import <Foundation/Foundation.h>

 

@interface BaseRepository : NSObject

 

@property (strong , nonatomic) NSString *entityName;

 

@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;

 

-(id) initModel;

 

- (NSMutableArray*) getAll;

 

- (id) getByID:(id) objectID;

 

- (void) updateModel:(id) modelObj;

 

- (void) deleteMdoel:(id) modelObj;

 

- (id) getRelation:(id)target attrName:(NSString*) attrName;

 

- (NSMutableSet*) getRelationList:(id)target attrName:(NSString*) attrName;

 

- (NSManagedObjectContext *)getMObjContext;

 

-(NSMutableArray*) sortForNSMutableArray:(NSMutableArray*)list sortName:(NSString*)sortName;

 

 

@end

 

Body

#import "BaseRepository.h"

#import "AppDelegate.h"

 

@implementation BaseRepository

 

@synthesize managedObjectContext;

@synthesize entityName;

 

-(id) initModel{

return [NSEntityDescription insertNewObjectForEntityForName:[self entityName] inManagedObjectContext:[self getMObjContext]];

}

 

- (void) deleteMdoel:(id) modelObj{

NSError *error;

[[self getMObjContext] deleteObject:modelObj];

if (![[self getMObjContext] save:&error]) {

NSLog(@"%@",[error localizedDescription]);

}else{

NSLog(@"success to delete!");

}}

 

 

- (void) updateModel:(id) modelObj

{

NSFetchRequest *retrieveRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *friend = [NSEntityDescription entityForName:[self entityName] inManagedObjectContext:[self getMObjContext]];

 

[retrieveRequest setEntity:friend];

NSError *error;

if (![[self getMObjContext] save:&error]) {

NSLog(@"%@",[error localizedDescription]);

}else{

NSLog(@"success to update!");

}

}

 

-(NSManagedObjectContext *)getMObjContext{

if (managedObjectContext == nil) {

managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];

}

return managedObjectContext;

}

 

-(NSManagedObjectContext *)OrgGetMObjContext{

if (managedObjectContext == nil) {

managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];

}

 

return managedObjectContext;

}

 

 

- (NSMutableArray*) getAll

{

NSEntityDescription *user = [NSEntityDescription entityForName:[self entityName] inManagedObjectContext:[self getMObjContext]];

NSFetchRequest *retrieveRequest = [[NSFetchRequest alloc] init];

 

[retrieveRequest setEntity:user];

NSError *error;

 

NSMutableArray *friendList = [[[self getMObjContext] executeFetchRequest:retrieveRequest error:&error] mutableCopy];

 

return friendList;

}

 

- (id) getByID:(id) objectID

{

//CoreDataDelegate *coredatadelegate = [[CoreDataDelegate alloc] init];

return nil;

}

 

- (id) getRelation:(id)target attrName:(NSString*) attrName

{

return [target valueForKey:attrName];

}

 

- (NSMutableSet*) getRelationList:(id)target attrName:(NSString*) attrName

{

return [target mutableSetValueForKey:attrName];;

}

 

-(NSMutableArray*) sortForNSMutableArray:(NSMutableArray*)list sortName:(NSString*)sortName{

NSSortDescriptor *sortByName = [[NSSortDescriptor alloc] initWithKey:sortName ascending:YES];

NSArray *sorter = [NSArray arrayWithObject:sortByName];

[list sortUsingDescriptors:sorter];

return list;

}

 

@end

 

 

 

작성이후...

지나고 보니.. 꼭 필요 없는 부분같게 느껴집니다.

장점은 각 Model 에 대한 Repository 를 분리해서 나름(?) 편하게 써본다 입니다.

생성조건 패턴을 Repository 에서 처리를 했었는데...

Model 에서 그냥 할껄.. 이라는 생각도 많이 드네요...

Model override 해서 처리 했어도 될만한 일이였습니다.

뭐. 이렇게 삽질하면서.. 얻는거죠. 허허허

 

-- 3월 5일 추가됨 --

CoreDtata schema 에서 변경이 된 경우 자동 생성했을때 작성된 내용이 사라집니다. 손수 변경된 내용에 대해서는 추가 작업을 진행해야 합니다.

동일한 Model을 상속받아서 추가 구현을 하는 것이 좋은 방법으로 보이네요.

그렇게 한다음에 이쁘게.. 처리 해봐야 겠습니다.

 

 

신고
posted by Bloody Guy

패왕 스틱

My days 2012.02.17 00:39

IMG 0145

철권6을 위해 패왕 스틱을 과감하게 선물해달라고 요청하고 생일선물로 받았습니다.

너무 좋습니다.

옛날에 유행하던 4각레버의 느낌도 버턴들도…

 

그러나 그 레버 소리…. 밤에 와이프와 아이가 들으면 잠에서 깨어날 것 같아 차마 하지를 못하고 있네요..

아픔이 있습니다.

혹시나 하여 설명 글입니다. 이 모델은 옛날 모델설명입니다. 동영상을 따로 찍기에는 기력이 좀 딸리네요..

하.하.하.하.하……

IMG 0146

아래쪽에 살짝 보이는 빨간색 테이블은 우리 아이의 소형 의자입니다. "딱" 이더군요..

IMG 0147

스틱으로 온라인 배틀을 했는데... 전패...........

아.. 사람들이 너무 잘하시는 군요...

흑..

 

신고
posted by Bloody Guy

지난 가을 서울숲

Pictures/Travel 2012.02.16 23:55

뚝섬 서울숲에서 찍은 사슴과 야경입니다.

신고
posted by Bloody Guy

Windows Live Writer

UTIL 2012.02.16 22:57

윈도우 사용자이면서 Blog 사용자에게 하나의 축복이 있다는 사실을 알았습니다.

Blog 글을 정말 편안하게 쓸 수 있는 Tool 이름 하여 Windows Live Writer..

 

다운로드 : http://explore.live.com/windows-live-essentials-other-programs 

 

Live를 다운 받아서 설치할 때 Windows Live Writer 만 설치하면 됩니다.

Mac 에서는 MarsEdit 라는 걸 사용했는데 몇 가지 불편한 점은 한글 맞춤법 검사가 안된다는 것과

사진이 글 작성할 때는 보이는데 게시 후에는 사진이 안보이는 현상이 발생합니다.

안타까운 일이죠…

 

윈도우를 주력으로 쓰다가 최근 3개월을 Mac 만을 사용하고 있어서

정말 좋아하는 프로그램 OneNote를 못쓴다는 아쉬움이 많이 남았는데 이제 하나 더 늘었네요..

Windows Live Writer.. 이거 Blog 글쓰기 Client 끝판대장으로 보입니다. 혹시 더 좋은 것이 있다면 추천 부탁드립니다.

 

이것도 사용방법을 많이 학습해야 할 듯 싶네요. 각종 PlugIn 들이 그득 그득하네요.

Blog 작성하시는데 어려움이나 불편함이 있다면 감히 추천합니다. ^^

 

image

신고
posted by Bloody Guy

보육료 지원 신청

My days 2012.02.16 22:37

image

저희 아이가 만 2세 전이라 보육료를 전액 지원 받을 수 있게 되었습니다.

http://www.bokjiro.go.kr/ 

image

“보육료 양육수당, 유아학비 온라인 신청 바로가기” 를 선택 합니다.

image

가장 중요한 내용입니다. 결국 신청해야 한다는 거죠 ^^

image

순서로 진행 됩니다.

1. 가족은 전체 가족을 다 입력하시구요..

   - 주소를 작성할 때 도로명으로 입력합니다.

2. 무조건 무상지원이라서 형식적인 내용입니다.

3, 4 번은 점프하구요

5. 역시 형식적인 내용입니다.

6. 아이사랑 카드 발급인데요.. 혹시 이전에 “아이사랑” 카드를 발급받은 적이 있다면 미신청 선택 후 발급내역 확인을 합니다.

  없으면 새로 발급받아야 합니다.

7. 추가 서류는 넣으실 필요 없습니다.

 

동사무소에 가서 해야 한다고 생각하고 있었는데 인터넷으로 바로 신청할 수 있어서 편하네요.

이것으로 저희 아이는 신청 완료 입니다.~~!

꼭 혜택 받으세요~~!

신고
posted by Bloody Guy

위니의 동물원

Applications/IOS 2012.02.15 16:03

Screenshot 2

 

Winnie's ZooZoo 귀여운 동물 캐릭터를 통해 아이들이 한글과 영어, 산수를 쉽고 재미있게 배울 있는 놀이형태의 교육용 입니다.

학습을 진행하면서 학습의 목표를 달성하게 되면 보상이 "동전" 으로 주어 지고 그 "동전"을 활용하여 스티커를 사서 꾸밀 수 있는 학습 및 놀이 효과를 동시에 얻을 수 있도록 한 앱 입니다.

주 연령층은 5~7 살 정의 연령층을 타겟으로 하고 있습니다.

공부를 하는 금방 싫증을 느끼는 아이들에게 공부라는 생각보다는 놀이를 한다는 생각으로 즐기게 있을 것 같습니다.

시각과 청각에 민감하고 바로바로 반응하는 요즘 아이들에게 매우 적절한 앱으로 보입니다.

최초화면

1

동시에 4명까지 학습자를 등록하여 사용할 수 있게 되어있습니다. 한 가정의 아이들(2~3)에 대한 배려로 보입니다.

초원을 배경으로 자연컬러를 사용하고 있어 아이들 눈에 크게 자극적이지 않으며 그에 어울리는 동물 캐릭터를 사용하여 아이들이 좋아할 합니다

위니 캐릭터를 살짝 터치하면 위니가 귀엽게 인사도 합니다

학습자를 등록하고 "Player" 들어가면 학습자별로 설정을 있게 되어 있습니다.

친구들과 함께 학습을 하면 학습 효율도 더욱 올라갈 것으로 생각됩니다.

 

 

 

 

 

 

 

교육 과목

14

-> 처음 화면에서 "Player" 를 선택  IMG 0149

6가지의 과정 레벨별로 보여지고 종목마다 개의 학습을 하고 정답을 맞췄는지 확인할 있습니다.

과정별로 5개의 레벨로 구성되어 있고 아이들이 충분히 학습할 있도록 "Player"에서 문제 반복 횟수를 지정할 있습니다.

문제 형식

31112

60여가지 동물의 그림과 단어를 듣고 직접 동물을 움직이며 문제를 풀어나갈 있고

정답을 맞추면 코인을 획득하여 방을 꾸밀수 있도록 하여 아이들에게 문제를 맞추는 재미와 성취감을 동시에 있습니다.

모든 문제는 음성으로 출제되며 오른쪽의 위니를 터치하면 문제를 다시 들을 있습니다. ( 여기에 대한 설명이 스냅샷으로 나오나 아이들 입장에서는 막 터치를 하는 편이라 모를 것 같습니다. )

4개의 보기 중에 하나를 고르게 되어 있어서 아이들이 너무 어려워하지 않고 문제를 있습니다.

앱의 이용 연령이 유아에서 초등학교 저학년 정도일 것으로 예상되므로 문제가 너무 어렵거 보기가 없으면 쉽게 질릴 있는데 그러한 부분을 적절하게조절한 같습니다.

또한 그림과 단어를 함께 나타냄으로써 더욱 쉽게 외우고 학습할 있도록 되어 있습니다.

동물 캐릭터를 동굴로 드래그하여 빼거나 더하면서 시각적으로 직접 남은 동물의 숫자를 있게 되어 있어

단순히 숫자를 외우는것이 아니라 아이들이 보다 쉽게 이해하고 재미있게 산수를 배울 있습니다.

꾸미기 방

2Screenshot 1315Screenshot 11

문제 1~5개까지 정답을 맞추면 코인을 하나씩 주는데 이것으로 스티커를 사서 꾸미기방을 꾸밀 있습니다.

아이들은 정답을 맞추는 기쁨과 코인을 하나씩 모아 스티커 모으는 재미를 느낄 있고

부모님이 아이들과 함께 꾸미기방을 꾸며가는 것도 좋을 합니다.

친구들과 함께 앱을 사용하면서 자기가 꾸민 방도 자랑하고 서로의 방도 구경할 있어 자연스럽게 건전한 경쟁심도 키울 있습니다.

이러한 경쟁심을 통해 학습에 더욱 집중할 있습니다.

 

장점

1. 산수,  동물의 한글 및 영어 학습

2. 학습의 재미도가 높음

3. 다양한 학습을 진행하여 ( 산수, 한글 및 영어의 듣기 와 단어 맞추기  ) 지루함을 줄임

단점

1. 최초 설명을 놓치게 되면 어디를 어떻게 눌려야 할지 고민 됨

2. 꾸미기방에서 종류가 좀더 많았으면

3. 장르가 동물만 있어 동물외에의 단어는 숙지 못함 ( 테마가 동물원 이니 어쩔 수 없어 보입니다. )

 

빠르게 업데이트가 진행되고 있습니다. 스티커 북이 추가 되었네요... 곧 IPHONE IPAD 호환으로 업데이트 된다고 합니다.

 

App SNS 정보

Facebook :  https://www.facebook.com/winnieszoozoo

twitter : @ask_Winnie

AppStore :  http://itunes.apple.com/us/app/winnies-zoozoo/id497915521?mt=8

 

 

신고
posted by Bloody Guy

앱스토어에 등록한 앱이 리젝 됐습니다. 

아 맘아파라.

리젝된 사유는 등록한 앱의 설명을 쓰는 곳에서 스크린 샷이 문제 였습니다.

앱에 IAd 를 사용하도록 하였는데 그 IAD 의 테스트 메세지가 보여진것이 문제였습니다.

이 화면이 문제였습니다.

"Test Advertisement"  이 화면 덕분에 다시 Waiting for Review 로 들어갔네요.. 

1주일을 기다렸는데 또 다시 1주일을 더 기다려야 될지 모르겠네요.


다른 분들은 이거 실수 하시지마세요.. ^^




추가 정보 입니다.

http://www.facebook.com/note.php?note_id=244298205610544


정책이 자주 바뀌나 보네요.. 허허허...

 

신고
posted by Bloody Guy


티스토리 툴바