牛客網iOS問題42-65

7106 ワード

牛客網iOS問題42-65


42.モバイルブラウザでは、ページがclick時間を採用し、300 msの遅延がある。


主な原因:ブラウザはダブルクリック(double tap)かどうかを判断するためにしばらく待つ必要があります.

43.ハイブリッドアプリケーション(Hybird App)


ハイブリッドアプリケーションはNative AppにWeb Viewを結合してWebリソースをロードするAppである.すなわちnativeにh 5をロードするためのコンテナを提供する.利点:互換性が良好で、コストが低く、更新が速い劣勢:性能が相対的に悪く、ユーザー体験が悪い

44.以下のコードエラーの箇所

NSTimer *myTimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(doSomeThing:) userInfo:nil repeats:YES];
[MyTimer fire];

NSTimerの作成方法は主に2つのタイプ1に分けられる.作成と実行方法が含まれています:scheduledTimerWithTimeInterval.作成後にRunloopに手動で追加する必要があります.
NsTimer *timer1 = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(timeMethod:) userInfo:nil repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:timer1 forMode:NSDefaultRunLoopMode];

45.weakキーワードを使用する場合、assignと比較してどのような違いがありますか?

  • ARCでは、ループ参照が発生する可能性がある場合、delegateエージェント属性
  • などのweakを一端に使用させることによって解決することが多い.
  • 自身がそれを強く引用し、もう一度強く引用する必要はなく、weakも使用します.

  • 異なる点:assignは非OCオブジェクトに使用できます.weakはOCオブジェクトに使用する必要があります.
  • weakインジケータこの属性は、割り当てられたオブジェクトに対して弱い参照を有し、弱い参照は、弱い参照が割り当てられたオブジェクトを指しても、オブジェクトが回収される可能性があることを意味する.
  • assign:インデックスカウントを変更せずに単純に値を割り当てます.ベースタイプ(単純タイプ、原子タイプ):NSInteger、CGPoint、CGFloat、Cデータ型(int、float、double、charなど)に適用します.

  • 46.カートン(特にスムーズではないアニメーション)は、App開発で最もよく見られる性能問題の表現であり、iOSでは


    発生メカニズム:
  • ネットワークがスムーズではなく、ネットワークリソースをロードする必要がある場合、カートン;
  • スレッドがブロックされ、例えば、ネットワーク要求がプライマリスレッドに格納される.
  • は、メモリにUIコントロールを一度にロードしすぎます.

  • 最適化の考え方:
  • は、例えば、ネットワーク要求がサブスレッドに配置され、メインスレッドはできるだけUIコントロール
  • のみを配置するなど、大きな操作を要する.
  • レイアウトの複雑さを軽減
  • 47.Appの設計と研究開発の角度に立って、異なるシステム、異なるブランド、異なる機種の設備の適合問題に対する対策を提出します。


    自由に発揮する

    48.Appの起動段階の感覚がユーザー体験に与える影響が大きいため、Appの最適化において起動体験の最適化に重点を置く必要がある。「Appの起動が遅い」と感じる典型的な問題またはネガティブモード(Anti-Pattern)および対応する最適化ポリシーをいくつか挙げてください。


    emmmm

    49.allocとは反対に、retainとは反対に、allocペアで使用される方法はどれらですか。

  • dealloc release dealloc
  • dealloc release release
  • dealloc dealloc dealloc
  • release release release

  • 答え:2
    alloc初期化はオブジェクトのretainCount=1になるので、ペアはrealeaseです.retainは参照カウントを増加させ、releaseは参照カウントを減少させる.

    50.setNameメソッドを呼び出すには、どの文を使用しますか?

  • setName(@"obj")
  • name = @"object"
  • self.name = @"object"

  • 3ええ
    OC言語は、オブジェクトを宣言するときにsetterメソッドとgetterメソッドを自動的にカプセル化し、呼び出し方法は一般的に次のようになります.
  • [self setName:@"obj"];
  • self.name = @"obj";(点文法)
  • 51.NSOperation queueの言い方について、正しいのは?

  • は主にマルチスレッド同時処理
  • に用いられる.
  • それは1つのキューで、厳格な先進的な先出
  • があります
  • 厳格な先進先出
  • を遵守しません
  • 重みを調整して調整キューの実行順序を開くことができます答え:1,3,4
  • NSOPertionQueueは、Operationの状態(Readyかどうか)および優先度に応じて実行するNSOperationの順序を決定します

    52.なぜObjective-Cがruntime languageだと言ったのですか。

  • データ型の決定をコンパイルした場合、実行時
  • に遅らせる.
  • ランタイムメカニズムにより、ランタイムまでオブジェクトのカテゴリを決定し、そのカテゴリオブジェクト指定方法
  • を呼び出す.
  • AがBクラスを継承すると仮定すると、コンパイル時にAのインスタンス
  • が生成される.
  • マルチステートとは、異なるオブジェクトが同じメッセージに独自に応答する能力
  • を意味する.
    1、2、4
    ランタイムメカニズムにより、ランタイムまでオブジェクトのカテゴリを決定し、そのカテゴリオブジェクトの指定方法を呼び出すことがマルチステートの基礎となります.インスタンスの生成にはスペースが必要なので、実行期間中に生成されます.

    53.次の言い方、正しいのは?

  • categoryは、元のコードを変更しないで新しい方法を追加することができ、追加するしかなく、変更
  • を削除することはできません.
  • implementは、メソッドを追加、変更または削除することができ、属性
  • を追加することができる.
  • extensionsは、属性
  • を追加できます.
  • extensionsは、
  • を実装することなく、方法を追加することができる.
    答え:1,3
    継承(inherit)は、メソッドを追加、変更、または削除することができ、属性extensionsを追加する方法を追加するには、拡張されたクラスの実装ファイルで実装する必要があります.

    54.浅い複製と深い複製については、以下の言い方が正しい。

  • 浅いレプリケーション:参照オブジェクト自体をコピーせずに参照オブジェクトのポインタのみをコピーします.
  • 深層コピー:参照オブジェクト自体をコピー
  • 浅いレプリケーションの場合、オブジェクトを変更すると別のオブジェクトに影響を与える可能性があります.
  • 深いコピーであれば、オブジェクトを変更しても他のオブジェクトには影響しません.

  • 1、2、3、4

    55.次のプログラムが出力するのは

    NSMutableArray *ary = [[NSMutableArray array] retain];
    NSString *str = [NSString stringWithFormat:@"test"];
    [str retain];
    [ary addObject:str];
    NSLog(@"%@%d", str, [str retainCount]);
    [str retain];
    [str release];
    [str release];
    NSLog(@"%@%d", str, [str retainCount]);
    [ary removeAllObjects];
    NSLog(@"%@%d", str, [str retainCount]);
    
  • 2,3,1
  • 3,2,1
  • 1,2,3
  • -1,-1,-1

  • 答え:4
    MRCモードではNSStringは依然として手動でメモリを割り当てることができず、OCではシステムが特殊な処理方式を持っている.

    56.メモリ管理について、以下の言い方で間違っているのは

  • 誰が申請して、誰が
  • を釈放します
  • メモリ管理は主に「早すぎるリリース」と「メモリリーク」を避け、「早すぎるリリース」に注意@propertyに特性を設定する場合は、必ず特性キーワードに対して、「メモリリーク」に対して、必ず
  • をリリースするよう申請しなければならない.
  • キーワードallocまたはnewで生成されたオブジェクトは、
  • を自動的に解放することができる.
  • 正しいproperty属性を設定し、retainに対して
  • を適切な場所で解放する必要がある.
    3ええ
    allocとnewで生成されたオブジェクトは自動的に解放されません.自動的に解放するにはautoreleaseメソッドを呼び出す必要があります.

    57.readwrite,readonly,assign,automaticの言い方について、以下の言い方が間違っているのは

  • readwriteは読み書き可能な特性であり、getterとsetterメソッドを同時に生成する.
  • readonlyは読み取り専用特性であり、getterメソッドのみが生成されます.
  • assignは付与属性であり、setterメソッドは入力パラメータをインスタンス変数に付与する.
  • nonatomicは非原子操作であり、コンパイラが生成したsetterとgetter法が原子操作であるかどうかを決定する.マルチスレッドセキュリティを表します.一般的にatomicを使用します.

  • 答え:4
    atomicこそスレッドが安全ですが、よりパフォーマンスがかかり、一般的にはnonatomicがよく使われています.

    58.次の言い方が正しいのは

  • Objective-Cは多重継承
  • をサポートする
  • Objective-Cのクラスは、複数のインタフェース
  • を実装することができる.
  • Objective-Cでヘッダファイルをインポートするのに#include
  • を使用します.
  • @class注入オブジェクト

  • 答え:2
    OCは単一の継承のみをサポートするが、プロトコルエージェントの方法を利用して複数のプロトコルとインタフェースを実現することができる.インポートファイルは#importを使用しており、重複インポートを回避できます.@classは順方向宣言に使用されます

    59.UIDIewControllerクラスでのモダリティ関連メソッドはどれらがありますか?

  • presentViewController: animated:completion
  • dismissViewControllerAnimated:completion:
  • addChildViewController:
  • removeFromParentViewController

  • 答え:1,2
    iOSのモダリティビュー(Modal View):警告ボックスなどの完了キーとキャンセルキーが一般的に付いています.

    60.iOSのナビゲーション設計モードは次のとおりです。

  • フラットナビゲーションUItabarController
  • タグナビゲーションUInavigationController
  • ツリーナビゲーションUIpageView Control
  • 61.次にナビゲーションに関するビューコントローラは

  • UIViewController
  • UINavigationController
  • UITabBarController
  • UITableViewController

  • 1、2、3
    UIViewControllerは、UINavigationControllerとUItabBarControllerの親です.

    62.フラットナビゲーションモードは、コンテンツ組織に階層関係がなく、表示されたコンテンツはすべて1つのメイン画面に配置され、スクリーン分割またはページングコントローラを用いてナビゲーションされ、画面を左右または上下にスライドさせてコンテンツを表示することができる。

  • エラー
  • 答え:1
    フラット・ナビゲーション・モードとは、コンテンツ間に依存関係がないことを意味します.

    63.タグナビゲーションモードは、コンテンツがいくつかの機能モジュールに分割され、各機能モジュール間には何の関係もない。各機能モジュールをラベルで管理し、ラベル切替機能モジュールをクリックします。

  • エラー
  • 答え:1

    64.木型ナビゲーションモードは内容に階層があり、上から下まで細分化または分類して含むなどの関係、例えば黒竜江省とハルビンの関係、黒竜江省はハルビンを含み、ハルビンは道里区、道外区などを含む。

  • エラー
  • 答え:1

    65.モダリティビューはナビゲーション中であり、主なタスクを放棄して他の副次的なタスクに移行する必要がある場合があり、副次的なタスクを完了した後、主なタスクに戻る必要があります。この副次的なタスクは「モダリティビュー」で完了します。

  • エラー
  • 答え:1