iOS Tips 小貼

1.NSDate 取年月日等等
最近項目中要取到當前時間的年月日等等數(shù)據(jù),搜遍終得一個方法如下:

- (void)setDateArray
{
    NSDate *dateNow;
    for (int i = 0; i<7; i++) {
        dateNow = [NSDate dateWithTimeIntervalSinceNow:i*24*60*60];
        NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
        NSDateComponents *comps = [[NSDateComponents alloc]init];
        NSInteger unitFlags = NSYearCalendarUnit|NSDayCalendarUnit|NSWeekdayCalendarUnit|NSHourCalendarUnit |NSMonthCalendarUnit;
        comps = [calendar components:unitFlags fromDate:dateNow];
        long day = [comps day];
        NSUInteger month = [comps month];
        NSString *dateStr = [NSString stringWithFormat:@"%ld月%ld日",month,day];
        [_dateArray addObject:dateStr];
    }
}

輸出_dataArray 可得

**12****月****14****日**
**12****月****15****日**
**12****月****16****日**
**12****月****17****日**
**12****月****18****日**
**12****月****19****日**
**12****月****20****日**
  1. xcode 7 tableView的一些小問題

tableView 在xcode7 下會有一些分割線無法被隱藏
解決辦法:

-(void)layoutSubviews{
      [super layoutSubviews]; 
       self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
  1. reloadData 刷新失效
[tableView reloadData]

無效女淑,有一行 cell 明明改變了但是刷新不出來。
解決的方法是捉捅,注釋 [tableView reloadData] 佛掖,改用局部刷新:

[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];

4.測試 bug 的工具
bugtags 用了不后悔

/**
 *  判斷一個時間段有幾天幾個小時幾分鐘等等
 *
 *  @param startDate 開始日期
 *  @param endDate   結束時間
 *
 *  @return 返回兩個時間段中間差幾個小時
 */
+ (NSString *)getStartTime:(NSString *)startDate endTime:(NSString *)endDate
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"HH:mm"];
    
    NSDate *date1 = [dateFormatter dateFromString:startDate];
    NSDate *date2 = [dateFormatter dateFromString:endDate];
    
    NSTimeInterval time = [date2 timeIntervalSinceDate:date1];
    float hours = (float)time/3600;
    return [NSString stringWithFormat:@"%.2f",hours];
}

/**
 *  判斷一個時間段內有幾個星期幾 (比如判斷1月29號到2月12號有幾個星期五)
 *
 *  @param startDate 開始時間
 *  @param endDate   結束時間
 *  @param weekStr   判斷的星期幾
 *
 *  @return  nsstring 是個數(shù)
 */
- (NSString *)featureWeekdayWithDate:(NSString *)startDate endStart:(NSString *)endDate weekStr:(NSString *)weekStr
{
    NSInteger dayIndex = 0;
    if ([weekStr isEqualToString:@"星期天"]) {
        dayIndex = 7;
    }
    if ([weekStr isEqualToString:@"星期一"]) {
        dayIndex = 1;
    }
    if ([weekStr isEqualToString:@"星期二"]) {
        dayIndex = 2;
    }
    if ([weekStr isEqualToString:@"星期三"]) {
        dayIndex = 3;
    }
    if ([weekStr isEqualToString:@"星期四"]) {
        dayIndex = 4;
    }
    if ([weekStr isEqualToString:@"星期五"]) {
        dayIndex = 5;
    }
    if ([weekStr isEqualToString:@"星期六"]) {
        dayIndex = 6;
    }
    
    long days = [[MyUtil getStartTime:startDate endTime:endDate] integerValue];
    days++;
    // 將總天數(shù) 換算為 以 周 計算(假如 相差10天,其實就是等于 相差 1周零3天忽肛,只需要取3天,更加方便計算)
    NSInteger fullIndex = days>=7 ? days/7 : 0;
    long day = days >= 7 ? days % 7 : days;
    NSInteger flag = 0;
    for (int i = 0; i< day; i++) {
        NSDate *date = [NSDate dateWithString:startDate format:@"yyyy-MM-dd"];
        long week = ([date weekday]+i)%7;
        switch (week) {
            case 1:
                if (dayIndex == 7) {
                    flag++;
                }
                break;
            case 2:
                if (dayIndex == 1) {
                    flag++;
                }
                break;
            case 3:
                if (dayIndex == 2) {
                    flag++;
                }
                break;
            case 4:
                if (dayIndex == 3) {
                    flag++;
                }
                break;
            case 5:
                if (dayIndex == 4) {
                    flag++;
                }
                break;
            case 6:
                if (dayIndex == 5) {
                    flag++;
                }
                break;
            case 7:
                if (dayIndex == 6) {
                    flag++;
                }
                break;
            default:
                break;
        }
    }
    return [NSString stringWithFormat:@"%d",fullIndex+flag];
}

設置一個 UIView 的背景圖片:推薦使用

 NSString *path = [[NSBundlemainBundle]pathForResource:@"image"ofType:@"jpg"];      
 UIImage *image = [UIImageimageWithContentsOfFile:path];
 self.view.layer.contents = (id)image.CGImage;

圖片緩存
根據(jù)是否將創(chuàng)建好的對象緩存入系統(tǒng)內存烂斋,有兩類創(chuàng)建UIImage對象的方法可選:

緩存:+ imageNamed:屹逛,只需傳入文件名.擴展名(可選)即可础废。
不緩存:+ imageWithContentsOfFile:,必須傳入文件的全名(全路徑+文件名)罕模。

Assets.xcassets中的圖片資源只能通過imageNamed:方法加載评腺,通過NSBundle的pathForResource:ofType:無法獲得圖片路徑。因此淑掌,Assets.xcassets只適合存放系統(tǒng)常用的蒿讥,占用內存小的圖片資源。
imageNamed:方法同樣可以加載根目錄中的圖片資源抛腕。
要想利用imageWithContentsOfFile:方法以不緩存的形式加載圖片芋绸,必須將圖片資源放置在根目錄中。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末担敌,一起剝皮案震驚了整個濱河市摔敛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌全封,老刑警劉巖舷夺,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異售貌,居然都是意外死亡,警方通過查閱死者的電腦和手機疫萤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門颂跨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扯饶,你說我怎么就攤上這事恒削。” “怎么了尾序?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵钓丰,是天一觀的道長。 經常有香客問我每币,道長携丁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任兰怠,我火速辦了婚禮梦鉴,結果婚禮上,老公的妹妹穿的比我還像新娘揭保。我一直安慰自己肥橙,他們只是感情好,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布秸侣。 她就那樣靜靜地躺著椭住,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜻拨。 梳的紋絲不亂的頭發(fā)上妄辩,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音嗜逻,去河邊找鬼。 笑死,一個胖子當著我的面吹牛匕得,可吹牛的內容都是我干的。 我是一名探鬼主播巾表,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼汁掠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了集币?” 一聲冷哼從身側響起考阱,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鞠苟,沒想到半個月后乞榨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡当娱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年吃既,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跨细。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡鹦倚,死狀恐怖,靈堂內的尸體忽然破棺而出冀惭,到底是詐尸還是另有隱情震叙,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布散休,位于F島的核電站媒楼,受9級特大地震影響,放射性物質發(fā)生泄漏戚丸。R本人自食惡果不足惜划址,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望限府。 院中可真熱鬧猴鲫,春花似錦、人聲如沸谣殊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姻几。三九已至宜狐,卻和暖如春势告,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抚恒。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工咱台, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俭驮。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓回溺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親混萝。 傳聞我的和親對象是個殘疾皇子遗遵,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容

  • 一、如何提高一個應用程序的性能逸嘀?1车要、使用ARC減少內存失誤,dealloc需要重寫并對屬性置nil崭倘。2翼岁、重用。3司光、...
    金歌漫舞閱讀 978評論 2 6
  • 一. 如何讓你的應用程序更加省電琅坡?答:(1). 如果程序用到定位,需要在定位完畢之后關閉定位残家,或者降低定位的頻率榆俺,...
    Hevin_Chen閱讀 1,140評論 0 4
  • 性能優(yōu)化 1.如何讓你的應用程序更加省電? 答:(1)如果程序用到定位跪削,需要在定位完畢之后關閉定位,或者降低定位的...
    丶逐漸閱讀 991評論 0 6
  • 概述在iOS開發(fā)中UITableView可以說是使用最廣泛的控件迂求,我們平時使用的軟件中到處都可以看到它的影子碾盐,類似...
    liudhkk閱讀 9,059評論 3 38
  • R: What:片段講的是贊美的好處很多,需要學會稱贊別人揩局,讓稱贊變得專屬性毫玖,稱呼對方的名字在贊美的句子里,在贊美...
    Wuwu攝影師閱讀 412評論 0 0