ARC 사용하는 프로젝트에서 특정 파일만 MRC 를 사용하기 위해서는

컴파일 옵션에 -fno-objc-arc 를 넣어주면 된다.


근데 xcode5 로 올리고 나니

Targets -> Build Phases 로 이동하면...



없다!!! 

컴파일러 옵션이 없고, 더블 클릭해도 안된다.


그래서 검색해보니,, 답은 황당하다..



오른쪽 탭을 없애든지 뭐 기타 방법으로 창을 길게 만들어주면 된다.

그럼 숨어있던 컴파일러 옵션이 나타난다.. ㅡ_ㅡ...


저기에 -fno-objc-arc 를 넣어주면 됨.

%hook NSString

-(NSString *)stringWithString:(NSString *)str {

//....

%orig;

}

%end


THEOS 언어를 사용해봤다면, 메서드를 위와 같이 후킹해서 사용하게 된다.

근데 저건 탈옥해서 트윅을 사용할 때의 얘기이고,,,


맥용 앱을 제작할 때 메서드 후킹이 필요할 때가 있을 수 있다.

(iOS 에서는 확인 안해봤지만,, 안되겠지?)


일반적인 경우라면 새로운 클래스를 만들고 원래 클래스를 상속받아서 사용하면 되겠지만..




주저리주저리 하고 싶은 말이 많지만 생략하고, 오버라이딩(후킹)을 위해선 아래 함수를 사용하면 된다.

더보기 클릭!




사용방법은


1. 해당 클래스에 카테고리로 대체용 함수를 만든다.

2. MethodSwizzle 함수를 사용해 필요한 때에 바꿔준다.

3. 원래 메서드를 호출하고 싶다면, 카테고리로 만든 메서드를 호출해 주면 된다.


예시:


@interface NSString (Swizzle)

-(NSString *)alt_stringWithString:(NSString *)str;

@end


@implementation NSString (Swizzle)


-(NSString *)alt_stringWithString:(NSString *)str {

    //......

    

    return [self alt_stringWithString:str];

}


@end


...


-(void)somewhereInYourMind {

MethodSwizzle([NSString class], @selector(stringWithString:), @selector(alt_stringWithString:));


[NSString stringWithString:@""];

}


이렇게 하면 원래 메서드(여기선 stringWithString:) 를 호출하면

alt_stringWithString: 을 거친 다음 원래 메서드가 호출되고, 반환된다.



출처: http://cocoadev.com/MethodSwizzling

방명록을 통해 RSS 업데이트가 안되니 글을 '발행'으로 해달라는 요청을 받았다.


확인해보니 Daum View 로 발행했던 2개의 글 외엔 안뜨는걸 확인.


그래서 전체 글 중 비공개글을 하나하나 걸러내며 다 발행으로 바꿨는데,,

그래도 업데이트가 안된다...!!


처음엔 딜레이가 있나,, 했는데 몇시간이 지나도 안되서 좀 더 검색을 해봤다.


명확히 설명된 글은 없엇지만, 티스토리 관리 - 글 설정 메뉴에서 설정을 해주면 된다.

(꼭 발행으로 해야되는건 아니더라...)




내 설정은 위와 같다ㅎㅎ



글쓰기 환경 - 공개는 기본값 설정이다.

여기 설정해둔게 '글쓰기'를 할 때 기본값이 된다.


그리고 공개정책 - RSS. 여기가 문제였다.


나의 경우 발행글로 선택이 되어있어서 발행한 글 외에는 RSS 로 올라가지 않은 것으로 보인다.

글 목록에서 공개 글들을 다 발행으로 바꾸었지만, Daum View 로 제대로 발행된게 아니라 그런지 여전히 RSS 에 나타나진 않았다..


그래서 그냥 공개글로 설정을 바꾸었더니 모든 글들(정확힌 설정한대로 최근 10개의 글)이 RSS 로 올라갔다.


그리고 RSS feed 주소로 직접 들어가면 갱신이 되어있지만 한RSS 에서는 제대로 안되길래

한RSS에서 글 목록 젤 아래 즉시수집 요청하기를 했더니 곧 갱신되더라...



+ Recent posts