2016年7月29日 星期五

如何讓nslog在release之後不見


網址:

https://github.com/web8246/TestNSLogWhenRelease.git

第一步,先新創一個pch檔案:



之後在裡面新增上:

#ifdef DEBUG
#define DLog(fmt, ...) NSLog((@"[文件名:%s]\n" "[函数名:%s]\n" "[行号:%d] \n" fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#define DeBugLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#define NSLog(...) NSLog(__VA_ARGS__);
#define MyNSLog(FORMAT, ...) fprintf(stderr,"[%s]:[line %d] %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define DLog(...)
#define DeBugLog(...)
#define NSLog(...)
#define MyNSLog(FORMAT, ...) nil

#endif

當設置好之後,要讓xcode找的到他,知道要去使用這個pch檔案:


然後,再來看看如何設置在模擬器要使用debug模式或是release:


















確定有設置好下面的條件,這樣才會去自動幫你改nslog:


1."Target > Build Settings > Preprocessor Macros > Debug" 里有一个"DEBUG=1",这保证了我们的条件编译的"#if"可以编译。如果没有,请自行添加,注意和代码中的#if后面的字段保持一致。

2016年7月28日 星期四

sizeClasses&動畫

我的理解:

先用wAny hAny把一些基本需要設置的constrain設定好,之後其他特殊的constrain:

先把constrain設定好後,點選constrain,把他選右邊紅框:




最上面的install要點掉,因為他是any的,

打橫和打直分別是:

iphone:

打直:w:c  h:R

打橫:w:     h:c



之後下面我練習了動畫,分別使用viewblock方式和cabasicanimation兩種,裡面有解釋


ㄉ地ˋ址:https://github.com/web8246/TestSizeClassesAndAnimation



另外在刻ui的時候,要注意,如果要刻圓形,必須要給定至少一邊的寬或是高,如果是動態調整的,則無法順利刻圓(如果有人可以請教我),我的理解是因為圓是寬or高/2








2016年7月26日 星期二

Target設置不同版本


先用複製的方式:



改名:





加入識別標籤:


 NSLog(@"Hello I am Original");
    
#if TARGET_VERSION == 1
    NSLog(@"Version1");
    

#endif




2016年7月23日 星期六

如何給launchscreen一個viewcontroller類別?

為何要如此?可能我們有時候會有些奇耙的idea,想在一開始只出現launchscreen,而app還沒啟動之前,做一些事情,或是限制launchscreen的轉向等等


設置:

先新建立一個storyboard(一定要做,不能用原本的,會報錯)



之後改設定,把launchscreen改成我們新設定的





之後就可以給他一個viewcontroller的.h,.m檔了






2016年7月20日 星期三

#ifdef DEBUG



有時候,需要測試當在寫code時(debug),和實際產品時的不同:

這時候就可以用這小技巧:

設置:




之後要把設定打開,才能夠正確使用:




之後code內寫判斷:

#ifdef DEBUG
    NSLog(@"bebug");
    self.myLabel.text = @"DeBug";
#else
    NSLog(@"iiuytre");
//    UIAlertController *controller = [UIAlertController all];
//    [self presentViewController:controller animated:YES completion:nil];
    static NSString *STR = @"NOONO";
    self.myLabel.text = @"NONON";

之後就可以在debug的時候和實際產品時處理不同事情了

2016年7月14日 星期四

在前景跳通知

在前景跳通知:一樣,網址:
https://github.com/web8246/DKCNotification

重點是客製化一個view,然後在收到通知的delegate裡面,讓view的動畫出現出來