외규장각 도서 환수 모금 캠페인

'분류 전체보기'에 해당되는 글 143건

  1. 2023.08.28 closure
  2. 2017.04.20 기초 정보
  3. 2017.01.19 How to use svn in Terminal
  4. 2016.08.02 cocoapods 사용법
  5. 2014.06.09 WWDC 2014 swift
  6. 2014.06.03 image to md5 converting
  7. 2014.05.23 연결된 SSID 알아오기
  8. 2014.05.07 Core data로 sqlite 만들때 사용하는 소스
  9. 2014.04.28 custom cell 안의 버튼 동작 시키기
  10. 2014.04.07 Local Data Storage

closure

Interesting/Swift 2023. 8. 28. 16:04

- 기본 형태

{ (매개변수 목록) -> 반환타입 in

        실행 코드

}

 

- 매개변수 없는 경우

{ () -> 반환타입 in

        실행 코드

}

 

- 반환타입 없는 경우

{ (매개변수 목록) -> Void in

        실행 코드

}

 

- 둘 다 없는 경우

{ () -> Void in

        실행 코드

}

Posted by 닉네임영역
,

기초 정보

Interesting/Swift 2017. 4. 20. 18:02

선언

변수 : var 변수명

상수 : let 상수명


반 닫힌 범위 연산자(half-closed range operator)

1..<5 = 1,2,3,4


루프 상수 생략 : _ 로 대체 가능

for _ in 1...size {

실행문

}


repeat ~ while : do ~ while문 과 동일, 최소 한번 이상 실행 후 조건 체크 후 실행 여부 판단

repeat {

 n = n * 2

while n < 1000


guard : if ~ else 동일 기능, else 필수, 결과가 참일 경우에는 실행되는 블록 없음, 즉 else인 경우에만 실행

guard 조건 else {

실행문

}



Posted by 닉네임영역
,

- svn ls svn_url

 : svn 내 파일 보기


- svn checkout svn_url local_url

 : checkout


- svn commit local_url -m "comment"

 : commit


- svn import import_path svn_url

 : import

 : "*.a" 같은 파일은 추가 안될 수 있음. 이때 사용 가능한 옵션 --no-ignore

Posted by 닉네임영역
,

1. terminal 실행

- sudo gem install cocoapods(시간 좀 걸림)

- pod setup(시간 좀 걸림)

- Performing a deep fetch of the 'master' specs repo to improve performance 나오면 rm -fr ./cocoapods/repos/master 후 다시 pod setup

2. workspace create

3. project create

4. workspace에 3번 생성한 project add

5. terminal에서 workspace와 proect가 있는 폴더로 이동

6. pod init(Podfile 생성 확인)

7. Podfine 수정 (라이브러리 소스로 추가)

8. terminal에서 pod install(다운로드 확인)

9. #import <>

10. swift인 경우 use_framework! 추가

Posted by 닉네임영역
,

따따디씨에서 새로운 언어(?)를 발표했다. 

스위프트란다.

기존 코드들에 대해 확 줄어들게 코딩할 수 있다던데 

오늘 맛좀 봤다.

머든지 그렇겠지만 익숙해지면 편할듯

유니코드 지원으로 변수명 한글이 된다.

변수명을 변수라고 해봤다. 잘된다...ㅋㅋㅋ


다만 아직은 xcode6 - beta라서 자동완성 기능이 원활하지 않다.

스토리보드도 해야 하는데 스위프트까지 ;;;;

간단한 tutorial을 링크를 참조 하시길


http://text.youknowone.org/post/87652586691/swift-list

https://www.penflip.com/jjuakim/swift-korean

Posted by 닉네임영역
,

////////////////////////////////////////////////////////////////////////////////////////////////////////////

- (NSMutableDictionary *)resourcesCheck {

    NSString* bundlePath = [[NSBundle mainBundle] bundlePath];

    NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager] enumeratorAtPath:bundlePath];

    NSString *filePath;

    NSMutableDictionary *mArray = [[NSMutableDictionary alloc] init];

    

    while ((filePath = [enumerator nextObject]) != nil) {

        if (![[filePath pathExtension] isEqualToString:@"nib"]){

            NSString *path = [bundlePath stringByAppendingPathComponent:filePath];

            NSData *nsData = [NSData dataWithContentsOfFile:path];

            if (nsData)

                NSLog(@"%@", [nsData MD5]);

            [mArray setObject:[nsData MD5] forKey:filePath];

        }

    }

    

    return mArray;

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

#import "NSString+MD5.h"

 

@interface NSString(MD5)

 

- (NSString *)MD5;

 

@end

////////////////////////////////////////////////////////////////////////////////////////////////////////////

#import <CommonCrypto/CommonDigest.h>

 

@implementation NSString(MD5)

 

- (NSString*)MD5

{

// Create pointer to the string as UTF8

  const char *ptr = [self UTF8String];


  // Create byte array of unsigned chars

  unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];


// Create 16 bytes MD5 hash value, store in buffer

  CC_MD5(ptr, strlen(ptr), md5Buffer);


// Convert unsigned char buffer to NSString of hex values

  NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];

  for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) 

[output appendFormat:@"%02x",md5Buffer[i]];


  return output;

}

 

@end

////////////////////////////////////////////////////////////////////////////////////////////////////////////

#import "NSData+MD5.h"

 

@interface NSData(MD5)

 

- (NSString *)MD5;

 

@end

////////////////////////////////////////////////////////////////////////////////////////////////////////////

#import <CommonCrypto/CommonDigest.h>

 

@implementation NSData(MD5)

 

- (NSString*)MD5

{

  // Create byte array of unsigned chars

  unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];


// Create 16 byte MD5 hash value, store in buffer

  CC_MD5(self.bytes, self.length, md5Buffer);

    

// Convert unsigned char buffer to NSString of hex values

  NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];

  for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) 

[output appendFormat:@"%02x",md5Buffer[i]];


  return output;

}

 

@end

////////////////////////////////////////////////////////////////////////////////////////////////////////////


Posted by 닉네임영역
,
'Reachability.h',
'Reachability.m' 
파일을 인터넷에 찾아 참고 하시고 참고하시고

>>> SSID -> 아래 코드 참고하세요.

    NSArray * ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
    
    for (NSString * item in ifs)
    {
        NSDictionary * info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)item);
        
        // kCNNetworkInfoKeySSID
        // kCNNetworkInfoKeyBSSID
        // kCNNetworkInfoKeySSIDData
        NSString * SSID = info[(NSString *)kCNNetworkInfoKeySSID];
       NSLog(@"SSID : %@", SSID);
    }


Posted by 닉네임영역
,

static NSManagedObjectModel *managedObjectModel()

{

    static NSManagedObjectModel *model = nil;

    if (model != nil) {

        return model;

    }

    

    NSString *path = @"CoreDataTutorial";

    path = [path stringByDeletingPathExtension];

    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"coredatatest" withExtension:@"mom"];

    

    model = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

    

    return model;

}


static NSManagedObjectContext *managedObjectContext()

{

    static NSManagedObjectContext *context = nil;

    if (context != nil) {

        return context;

    }


    @autoreleasepool {

        context = [[NSManagedObjectContext alloc] init];

        

        NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel()];

        [context setPersistentStoreCoordinator:coordinator];

        

        NSString *STORE_TYPE = NSSQLiteStoreType;

        

        NSString *path = @"coredatatest";

        NSURL *url = [NSURL fileURLWithPath:[path stringByAppendingPathExtension:@"sqlite"]];

        

        NSError *error;

        NSPersistentStore *newStore = [coordinator addPersistentStoreWithType:STORE_TYPE configuration:nil URL:url options:nil error:&error];

        

        if (newStore == nil) {

            NSLog(@"Store Configuration Failure %@", ([error localizedDescription] != nil) ? [error localizedDescription] : @"Unknown Error");

        }

    }

    return context;

}


int main(int argc, const char * argv[])

{


    @autoreleasepool {

        // Create the managed object context

        NSManagedObjectContext *context = managedObjectContext();

        

        // Custom code here...

        // Save the managed object context

        NSError *error = nil;

        if (![context save:&error]) {

            NSLog(@"Error while saving %@", ([error localizedDescription] != nil) ? [error localizedDescription] : @"Unknown Error");

            exit(1);

        }

        

        NSString *dataPath = [[NSBundle mainBundle] pathForResource:@"Banks" ofType:@"json"];

        NSArray *Banks = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:dataPath] options:kNilOptions error:&error];

        NSLog(@"Imported Banks : %@", Banks);

        

        [Banks enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

            FailedBankInfo *failedBankInfo = [NSEntityDescription insertNewObjectForEntityForName:@"FailedBankInfo" inManagedObjectContext:context];

            failedBankInfo.name = [obj objectForKey:@"name"];

            failedBankInfo.city = [obj objectForKey:@"city"];

            failedBankInfo.state = [obj objectForKey:@"state"];

            

            FailedBankDetails *failedBankDetails = [NSEntityDescription insertNewObjectForEntityForName:@"FailedBankDetails" inManagedObjectContext:context];

            failedBankDetails.closeDate = [NSDate dateWithString:[obj objectForKey:@"closeDate"]];

            failedBankDetails.updateDate = [NSDate date];

            failedBankDetails.zip = [obj objectForKey:@"zip"];

            

            failedBankDetails.info = failedBankInfo;

            failedBankInfo.details = failedBankDetails;

            

            NSError *error = nil;

            if (![context save:&error]) {

                NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);

            }

        }];

        // Test listing all FailedBankInfos from the store

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

        NSEntityDescription *entity = [NSEntityDescription entityForName:@"FailedBankInfo" inManagedObjectContext:context];

        [fetchRequest setEntity:entity];

        

        NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];

        

        for (FailedBankInfo *info in fetchedObjects) {

            NSLog(@"Name: %@", info.name);

            FailedBankDetails *details = info.details;

            NSLog(@"Zip: %@", details.zip);

        }

    }

    return 0;

}


참조 : http://www.raywenderlich.com

Posted by 닉네임영역
,

1. UITableView *tableView = (UITableView *)self.superview.superview;

    NSIndexPath *path = [tableView indexPathForCell:self];

    [tableView.delegate tableView:tableView didSelectRowAtIndexPath:path];


2. cell tag 연결 후 addTarget 하여 methhod 등록

Posted by 닉네임영역
,

1. NSUserDefaults : Dictionary 형태의 메모리 저장소

example>

// init

[NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

// get

[defaults objectForKey:@"Key"];

// set

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"Key", @"Value", nil];

[defaults registerDefaults:dictionary];


2. CoreData : Database를 wrap 한 저장소

[Update 예정]


3. Sqlite : Database

[Update 예정]


4. Plist : DIctionary 형태의 파일 저장소

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *filePath = [documentsDirectory stringByAppendingString:@"/userInfo.plist"];

NSMutableDictionary *plist = [[NSMutableDictionary alloc] init];

[plist setValue:@"Value" forKey:@"Key"];

[plist writeToFile:filePath atomically:YES];


5. Keychain : 폰 내부에 같은 도메인끼리 참조 할 수 있는 데이터 저장소


Posted by 닉네임영역
,


사랑합니다. 편안히 잠드소서