UIImageからByte配列を生成する方法

iOS側で生成したUIImageのデータをcocos2d-xのCppインスタンスにByte配列で渡すため、変換処理を作った。

要メモリの開放

 

    UIImage* uiImage = [UIImage initWithName:@"xxxx.png"];    

    NSData* data = UIImagePNGRepresentation(uiImage);

    NSUInteger len = [data length];

    Byte *byteData = (Byte*)malloc(len);

    memcpy(byteData, [data bytes], len);

 

Objective-CからSwiftのクラスを使用する。

NSObjectを継承してビルドすれば、

($Pruduct Name)-Swift.hが自動生成されるので、

 

import  "($Pruduct Name)-Swift.h"

すればいいと各サイトで書いているが、

file not foundのエラーになった。

 

間違えてないはずなのになあと設定を探すと

自動生成されるファイル名の設定を見つけた。

 

Build-Settings->Objective-C Generated Interface Header Name 

 

設定では、

"-Swift.h"

となっていたため、

"($Pruduct Name)-Swift.h"

に直すと解決できた。

Objective C __blockロジック

Objective Cのプログラムを書いていると

 

 __block NSMutableArray* assetArray = NSMutableArray.new;

 

という処理を書いているサイトに出会った。

 

 __blockってなんだろう?と調べてみると、

 

 関数の中で宣言され,その関数の実行開始時から 終了時までの間,その値を保持する.

 

とある。

確かに関数内で使用されていた。

さらに、関数内でnewしているのに関わらず、releaseしていないところを見ると、

どうやら、自動でメモリを開放してくれる処理ではないかと推測している。

 

といあえず実装してみて動作を見てみよう。

iOSアプリ開発 FontAwesomeKitをプロジェクトにインストール

■前提 gemでpodはインストールされていること。

gemからインストー
  sudo gem install cocoapods
 pod setup

■プロジェクトにインストー

●1.PodFileを作成

ターミナルで以下のコマンドを実行

cd プロジェクトのパス
pod init

→PodFileが作成される。



●2.PodFileに以下を追記

pod 'FontAwesomeKit', '~> 2.1.0'

↓以下のように

                                                                                                                                                  • -

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'SimplePhotoSlideShow-mobile' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!

# Pods for SimplePhotoSlideShow-mobile
pod 'FontAwesomeKit', '~> 2.1.0'
end

                                                                                                                                                  • -


3. pod installを実行
ターミナルで以下のコマンドを実行

 pod install

Podsプロジェクトが作成される。
 
Xcodeワークスペースを開き、Podsプロジェクトが左ツリーに追加されていればOK

4.プロジェクトのビルドで、フォントファイルをリソースを追加するように設定。

 Project→build PhasesのCopy BundleでFontAwesome.otfを追加

 ※これをやっておかないと、起動後に
  Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Font file doesn't exist'
 が発生。

【XcodeのiOSアプリ開発】起動するStoryBoardの指定方法

起動するiOSのStoryBoardはどうやっているのか調べてみました。

 

Xcodeで、左ツリーからプロジェクトを選択し、

GeneralタブのDeployment into部にあるMainInterFaceで、指定されたstoryboardファイル名が起動するということがわかった。

 

f:id:rarao1048:20170520101353p:plain

Macでcocos2d-x セットアップとcocos2d-xプロジェクトの作成方法

■1.cocos2d-xをダウンロード

www.cocos2d-x.org

 

■2.ダウンロード後、インストールしたいフォルダに解凍

自分は/Application/cocos2d-x-3.15に解凍しました。


■3.環境変数設定

setup.pyを実行
環境変数が自動設定される

■4.プロジェクト作成
cd cocos2d-x cocos new MyCocosApp -l cpp
-lオプションで言語 cppとluaが指定可能

■5.プロジェクトのビルド
cd MyCocosApp/ cocos run -p ios

iosバージョンを作るのでiosを指定
他に、win32,mac,androidが指定可能