プロジェクトノート

4064 ワード

uisearchContorllerディスプレイ画面
  self.definesPresentationContext = YES;

edgesForExtendedLayoutプロパティ
UINavigationControllerなどの境界コンテナを統合したコントローラにのみ適しています.
Layout Feedback Loop Debugging
1.(setNeedsLayoutが呼び出された各情報を記録)-U I v i e w LayoutFeedbackLoopDebuggingThreshold 100//50...1000 -NSViewLayoutFeedbackLoopDebuggingThreshold 100//50...1000 2.グローバルな異常ブレークポイントexception break pointを打つ.po [_UIViewLayoutFeedbackLoopDebugger layoutFeedbackLoopDebugger]
アドレスに基づいて質問を検索
Edit Scheme、Tab Aguments構成環境変数MallocStackLoggingNoCompact NSZombieEnabled MallocStackLogging shell malloc_に切り替えますhistory 40888 0 x 6497860|grep 0 x 6497860「アクティブモニタ」を開き、プロセスリストでテストAPPに対応するプロセス番号PID Xcodeを見つけてデバッグを有効にすると、プロセスリストに対応するAPPのプロセスが見つかる)端末にsudo malloc_を入力history PIDメモリアドレス
swiftマクロ
#if TARGET_INTERFACE_BUILDER
@IBOutlet open weak var dataSource: AnyObject?
 @IBOutlet open weak var delegate: AnyObject?
#else
 open weak var dataSource: FSPagerViewDataSource?
 open weak var delegate: FSPagerViewDelegate?
#endif

swift xib読み出し
  •      let bundle = NSBundle(forClass: self.dynamicType)
         let nib = UINib(nibName: String(XXX), bundle: bundle)
    
  •  #if TARGET_INTERFACE_BUILDER
     NSBundle *bundle = [NSBundle bundleForClass:[self class]];
     [bundle loadNibNamed:@“XXX” owner:self options:nil];
    #else
     [[NSBundle mainBundle] loadNibNamed:@“XXX” owner:selfoptions:nil];
     #endif
    


  • initWithNibNameメソッド:遅延ロードです.このViewのコントロールはnilで、表示が必要になるまでnilではありません.loadNibNamedは直ちにロードされ、このメソッドを呼び出すロードされたxibオブジェクトの各要素はすでに存在する.
    pod互換swift 3.0
    post_install do |installer|
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings['SWIFT_VERSION'] = '3.0'
        end
      end
    end
    

    削除操作を簡単に実行
    [makeObjectsPerformSelector: removeFromSuperView]
    ソースファイルのコンパイル
    clang -rewrite-objc xxx.m
    クラスと分類におけるloadのロードメカニズム
    1)、クラスloadでは分類のメソッドを呼び出すことができる.categoryをクラスに付加する作業は+loadメソッドの実行より先になるからである.2)、+loadの実行順序は先クラス、後categoryであり、categoryの+loadの実行順序はコンパイル順序によって決定される.
    iOS 9 HTTPが正常に使用できない解決方法
    Info.plistにNSAppTransportSecurityタイプDictionaryを追加します.NSAppTransportSecurityでNSAllowsArbitraryLoadsタイプBooleanを追加し、値をYESに設定
    文字画像の違い
    文字、色などはベクトルデータで、拡大しても歪みません.画像はベクトルデータではなく、処理方法が異なります
    __ブロック原理
    自動変数は値伝達方式でBlockのコンストラクタに伝達されますBlockで変数値を変えるには2つの方式があります
     1.            Block ,
     2.          (__block)。
    

    ARC環境では、Blockが値を割り当てるとcopy,ブロックがスタックにコピーされます
    スプリングアニメーション
     usingSpringWithDamping 0-1     「  」       
     initialSpringVelocity                    
    [UIView animateWithDuration:0.8 delay:_delay usingSpringWithDamping:0.6 initialSpringVelocity:0.1  options:UIViewAnimationOptionCurveEaseInOut animations:^{
    } completion:^(BOOL finished) {        
    }];
    

    コンストレイント衝突ビューの検索
    (lldb) po [[UIWindow keyWindow] _AutolayoutTraceではAutoLayoutの階層図が表示されます
    ネットワークコールバック待ち
      dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);
        [[HttpManager sharedInstance] requestWithParam:@{} success:^{
             dispatch_semaphore_signal(semaphore);
        } failed:^(NSString *errorMsg) {
            dispatch_semaphore_signal(semaphore);
        }];
        dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
    

    マルチネットワーク同時コールバックスレッド同期
    1.GCD 2.NSOperation依存3.RAC
     //   
     dispatch_group_t group = dispatch_group_create();
     //  banner   
     dispatch_group_enter(group);
     [[BHNetReqManager sharedManager].bh_requestUrl(@"banner") startRequestWithCompleteHandler:^(id response, NSError *error) {
      dispatch_group_leave(group);
     }];
     //  table   
     dispatch_group_enter(group);
     [[HTTPManager sharedManager].requestUrl(@"table") startRequestWithCompleteHandler:^(id response, NSError *error) {
      dispatch_group_leave(group);
     }];
     dispatch_group_notify(group, dispatch_get_main_queue(), ^{
            //     
        });