autolayoutにおいてUINavigationBarの重なりを避ける

UIViewControllerのtopLayoutGuideプロパティを参照する。


https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/

WD Cloudへのssh接続

パーソナルクラウドストレージ(個人向けNAS)製品 "WD Cloud" に、macOS 10.12 (Sierra) から ssh接続を試みると失敗する。

エラーの例

 

失敗の理由

(macOSに限らず)最新のsshクライアントにおいて、暗号化アルゴリズム ssh-dss がデフォルトでは無効にされている。

 

解決方法

[方法1] コマンドラインオプションでssh-dssを有効にする

[方法2] 設定ファイル .ssh/configssh-cssを有効にする

 

オリジナルソース

WDサポート – MacOS 10.12(Sierra)からWD CloudにSSH接続できない

[Obj-C] 反復処理

enumrateObjectsUsingBlockメソッド

block
配列の要素に適用する操作。blockの中が for(;;){ do_anything; } の do_anything に相当する。
obj
配列から取り出した要素。
idx
配列要素のインデックス。forループのカウンター値に相当する。

stop
停止フラグ。stopにYESを代入するとその時点で停止する。forループのbreak文に相当する。

OpenCVを組み込んだiOSアプリが“Missing Info.plist key”を理由にAppStore審査不合格

不合格理由

アプリがカメラ機能を使用するにもかかわらず xxx-Info.plist にカメラ機能を使用する理由の記載(NSCameraUsageDescription)がない。

カメラ機能を明示的には使用していないケースであっても、OpenCV(opencv2.framework)を組み込むとカメラ機能を呼び出す(ことができる)バイナリ・オブジェクトがアプリに含まれてしまう。

続きを読む

Objective-CからSwiftのクラスが参照できない

課題

Objective-CからSwiftのクラスが参照できない。

Use of undeclared identifier 'xxx'

 

チェックポイント

ポイント 1

Objective-C(*.m, *.mm)において ProjectName-Swift.h をインポートしなければならない。

 

ポイント 2

Objective-Cから参照するSwiftで実装するクラスは NSObject の派生クラスでなければならない。

複数の画像ファイルの一括変換する

ImageMagick の mogrifyコマンドを使う

解像度一括変換例

高さ240pxに解像度を一括変換する。

  • -resize : resize the image (box filter)
  • -scale : scale the image (averaged pixels)
  • -sample : scale image with pixel sampling (補間なし)

 

解像度一括変換例

JPEGファイルをPNGファイルへ一括変換する。

XcodeでOpenCVのコンパイルエラー

エラー内容

ヘッダーファイル(*.hpp)において "Expected Identifier" が発生する。

直前のソースコードで以下の警告(Warning)が発生している。

意訳

Apple (Xcode) が提供するヘッダーファイルにおいて "NO" が定義される前に、OpenCVのヘッダーファイルを先に読み込んで "NO;" を定義しなければならない。
続きを読む