簡答題

1.請簡單的介紹下APNS發(fā)送系統(tǒng)消息的機(jī)制

APNS優(yōu)勢:杜絕了類似安卓那種為了接受通知不停在后臺喚醒程序保持長連接的行為餐蔬,由iOS系統(tǒng)和APNS進(jìn)行長連接替代
APNS的原理:
    1.app向iOS注冊遠(yuǎn)程推送通知
    2.iOS向APNS發(fā)送設(shè)備的UDID和app的Bundle Identifier.請求返回設(shè)備令牌(device Token)
    3.經(jīng)APNS加密生成一個deviceToken,然后發(fā)送給app
    4.app將收到的deviceToken發(fā)送給自己的服務(wù)器
    5.服務(wù)器將得到的deviceToken進(jìn)行保存,需要推送時將消息和deviceToken一起發(fā)送給APNS,
    6.APNS再通過deviceToken找到用戶,并將消息發(fā)給用戶

2.沙盒目錄結(jié)構(gòu)是怎樣的卓研?各自用于那些場景拱她?

Application:存放程序源文件昙读,上架前經(jīng)過數(shù)字簽名崖技,上架后不可修改
// 打印其路徑:NSLog(@"沙盒路徑:%@",NSHomeDirectory());

1.Documents:(用戶收藏或者設(shè)置)
    // 需要保存由應(yīng)用程序本身產(chǎn)生的需要持久化文件或者數(shù)據(jù)擎椰,iTunes同步設(shè)備時會備份該目錄支子。例如:游戲進(jìn)度、涂鴉軟件的繪圖达舒。
    // 目錄中的文件會被自動保存在iCloud值朋、iTunes.
    // 注意:不要保存從網(wǎng)路上下載的文件叹侄,否則會無法上架。
2.Library(自己緩存文件和SDWebImage緩存圖片)
    Caches:存放體積大又不需要備份的數(shù)據(jù)
        // 保存臨時文件昨登,后續(xù)需要使用,例如:緩存圖片趾代,離線數(shù)據(jù)(地圖數(shù)據(jù))。
        // 系統(tǒng)不會清理cache目錄中的文件丰辣。
        // 要求程序開發(fā)時撒强,必須提供Caches目錄的清理解決方案。
    Preference:設(shè)置目錄笙什,iCloud會備份設(shè)置信息
        // 保存應(yīng)用的所有偏好設(shè)置飘哨,使用NSUserDefault直接讀寫。(賬號密碼)得湘。iTunes會同步設(shè)備時會備份該目錄杖玲。
        // 如果要想數(shù)據(jù)及時寫入磁盤,還需要調(diào)用一個同步方法淘正。
        // 偏好設(shè)置一般是利用鍵值對保存,本質(zhì)上也是plist文件臼闻,但是不用去找尋地址鸿吆,有對應(yīng)的文件夾,對應(yīng)的方法查詢地址述呐,保存惩淳。
3.tmp:存放臨時文件,不會被備份乓搬,而且這個文件下的數(shù)據(jù)有可能隨時被清除的可能
    // 保存臨時文件思犁,后續(xù)不需要使用一般緩存比較大的,不重要的數(shù)據(jù)进肯。
    // tmp目錄中的文件激蹲,系統(tǒng)會自動清理。
    // 重新啟動手機(jī)江掩,tem目錄會被清空学辱。
    // 系統(tǒng)磁盤空間不足時,系統(tǒng)會自動清理环形。

3.pushViewController和presentViewController有什么區(qū)別?

兩者都是在多個試圖控制器間跳轉(zhuǎn)的函數(shù)
presentViewController提供的是一個模態(tài)視圖控制器(modal)
pushViewController提供一個棽咂控制器數(shù)組,push/pop

4.控制器的生命周期抬吟,下面已經(jīng)按方法執(zhí)行順序進(jìn)行了排序

// 自定義控制器view萨咕,這個方法只有實現(xiàn)了才會執(zhí)行
- (void)loadView{
    [super loadView];
    self.view = [[UIView alloc] init];
    self.view.backgroundColor = [UIColor orangeColor];
    NSLog(@"--1--%s",__func__);
}
// view是懶加載,只要view加載完畢就調(diào)用這個方法
- (void)viewDidLoad{
    [super viewDidLoad];
    NSLog(@"沙盒路徑:%@",NSHomeDirectory());
    NSLog(@"--2--%s",__func__);
}
// view即將顯示
- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    NSLog(@"--3--%s",__func__);
}
// view即將開始布局子控件
- (void)viewWillLayoutSubviews{
    [super viewWillLayoutSubviews];
    NSLog(@"--4--%s",__func__);
}
// view已經(jīng)完成子控件的布局
- (void)viewDidLayoutSubviews{
    [super viewDidLayoutSubviews];
    NSLog(@"--5--%s",__func__);
}
// view已經(jīng)出現(xiàn)
- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    NSLog(@"--6--%s",__func__);
}
// view即將消失
- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    NSLog(@"--7--%s",__func__);
}
// view已經(jīng)消失
- (void)viewDidDisappear:(BOOL)animated{
    [super viewDidDisappear:animated];
    NSLog(@"--8--%s",__func__);
}

5.把一個NSNumber類型轉(zhuǎn)換成字符串類型的三種方法?

NSNumber *number = @2;
NSString *str = [NSString stringWithFormat:@"%@",number];
NSString *str1 = [number stringValue];
NSString *str2 = [number description];

6.所謂懶加載,寫的是其get方法,先get再set. 在使用的時候才去初始化

1.懶加載基本概念
懶加載——也稱為延遲加載火本,即在需要的時候才加載(效率低危队,占用內(nèi)存写辖ā)。所謂懶加載交掏,寫的是其get方法.
注意:如果是懶加載的話則一定要注意先判斷是否已經(jīng)有了妆偏,如果沒有那么再去進(jìn)行實例化
2.使用懶加載的好處:
(1)不必將創(chuàng)建對象的代碼全部寫在viewDidLoad方法中,代碼的可讀性更強(qiáng)
(2)每個控件的getter方法中分別負(fù)責(zé)各自的實例化處理盅弛,代碼彼此之間的獨立性強(qiáng)钱骂,松耦合

- (void)viewDidLoad {
    // 先get再set
    self.label.text = @"懶加載";
}
// 延遲加載
- (UILabel *)label {
    // 判斷是否已經(jīng)有了,若沒有挪鹏,則進(jìn)行實例化
    if (!_label) {
        _label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 40)];
        _label.backgroundColor = [UIColor cyanColor];
        [self.view addSubview:_label];
    }
    return _label;
}

7.C和OC冒泡排序

int arr[6] = {2,1,5,6,3,4};
for (int i = 0; i < 6-1; i++) {
    for (int j = 0; j < 6-1-i; j++) {
        if (arr[j] > arr[j + 1]) {
            int temp = 0;
            temp = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = temp;
        }
    }
}

NSMutableArray *array = [NSMutableArray arrayWithArray:@[@"2",@"1",@"5",@"6",@"3",@"4"]];
NSString  *temp;
for (int i = 0; i < array.count; i ++) {
    for (int j = 0; j < array.count  - 1 - i; j++) {
        if ([[array objectAtIndex:j] integerValue] > [[array objectAtIndex:j + 1] integerValue]) {
            temp = [array objectAtIndex:j];
            [array replaceObjectAtIndex:j withObject:[array objectAtIndex:j + 1]];
            [array replaceObjectAtIndex:j + 1 withObject:temp];
        }
    }
}

8.觸摸事件的傳遞響應(yīng)過程

UIView不能接收觸摸事件的三種情況:
1.不接受用戶交互:userInteractionEnabled = NO;
2.隱藏:hidden = YES;
3.透明:alpha = 0.0~0.01

UIApplication-->UIWindow-->遞歸找到最合適處理的控件-->控件調(diào)用touches方法-->判斷是否實現(xiàn)touches方法-->沒有實現(xiàn)默認(rèn)會將事件傳遞給上一個響應(yīng)者-->找到上一個響應(yīng)者-->...-->UIWindow-->UIApplication-->事件作廢

響應(yīng)過程.png

9.將兩個字符串拼接在一起的方法

NSString *str = @"Hello ";
[NSString stringWithFormat:@"%@%@",str,@" World"];
[str stringByAppendingString:@" World"];
[str stringByAppendingFormat:@"%@%@",str,@" World"];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末见秽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子讨盒,更是在濱河造成了極大的恐慌解取,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件返顺,死亡現(xiàn)場離奇詭異禀苦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)遂鹊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門振乏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秉扑,你說我怎么就攤上這事慧邮。” “怎么了舟陆?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵误澳,是天一觀的道長。 經(jīng)常有香客問我秦躯,道長忆谓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任宦赠,我火速辦了婚禮陪毡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勾扭。我一直安慰自己毡琉,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布妙色。 她就那樣靜靜地躺著桅滋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丐谋,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天芍碧,我揣著相機(jī)與錄音,去河邊找鬼号俐。 笑死泌豆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吏饿。 我是一名探鬼主播踪危,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼猪落!你這毒婦竟也來了贞远?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤笨忌,失蹤者是張志新(化名)和其女友劉穎蓝仲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體官疲,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡袱结,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了途凫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片擎勘。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖颖榜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情煤裙,我是刑警寧澤掩完,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站硼砰,受9級特大地震影響且蓬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜题翰,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一恶阴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧豹障,春花似錦冯事、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春摔笤,著一層夾襖步出監(jiān)牢的瞬間够滑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工吕世, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留彰触,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓命辖,卻偏偏與公主長得像况毅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吮龄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 收集非原創(chuàng)文章俭茧,如遇原作者,請私聊我漓帚,我會表明出處母债! 1--10 1. C++中什么數(shù)據(jù)分配在棧或堆尝抖,靜態(tài)存儲區(qū)以...
    Juinjonn閱讀 4,943評論 0 30
  • 1.寫出四種匿名委托的格式 答:委托的格式:(每點 1 分) (1)delegate(參數(shù)列表) {方法體}; (...
    胤醚貔貅閱讀 1,368評論 0 5
  • 傳播效果研究有兩個基本方面:其一是對個人效果產(chǎn)生的微觀過程分析毡们;其二是對社會效果產(chǎn)生的宏觀過程分析。這兩個方面的研...
    劉二傻閱讀 11,008評論 2 21
  • 當(dāng)我揮斧劈柴昧辽, 天空忽然暗了下來衙熔。 我沒有抬頭看, 斧子準(zhǔn)確而有力搅荞, 圓木從中心迸裂红氯。 樹干,樹枝咕痛,樹杈痢甘, 乖乖地...
    三水林楓閱讀 360評論 2 4
  • 參考書目《控場:主宰和說服的關(guān)鍵能量》 分享成功社交的五個步驟: 共振 利用吸引力法則,我們總是被有相同磁場的人所...
    錢生錢落地實操閱讀 194評論 0 4