<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>swift | ユガラボ</title>
	<atom:link href="https://yugalab.net/archives/category/4000_technical/4001_swift/feed" rel="self" type="application/rss+xml" />
	<link>https://yugalab.net</link>
	<description>pursue the beauty with yuga lab.</description>
	<lastBuildDate>Fri, 18 Dec 2015 03:18:34 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7.7</generator>
	<item>
		<title>【Swift】プロジェクト内に置いたpng画像をNSDataとして取り出す</title>
		<link>https://yugalab.net/archives/4288</link>
					<comments>https://yugalab.net/archives/4288#respond</comments>
		
		<dc:creator><![CDATA[ユーリ]]></dc:creator>
		<pubDate>Fri, 18 Dec 2015 03:00:55 +0000</pubDate>
				<category><![CDATA[swift]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[xcode]]></category>
		<guid isPermaLink="false">http://yugalab.net/?p=4288</guid>

					<description><![CDATA[<p>こんにちは、ユーリです！お仕事でSwift使い始めたので、Swift関連の備忘録を書いていきます。 まずはpng画像を簡単に取り出す方法について。 メルストの記事じゃなくてゴメンナサ… 今回は、プロジェクトファイル内にリ [&#8230;]</p>
<p>The post <a href="https://yugalab.net/archives/4288">【Swift】プロジェクト内に置いたpng画像をNSDataとして取り出す</a> first appeared on <a href="https://yugalab.net">ユガラボ</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>こんにちは、ユーリです！<br />お仕事でSwift使い始めたので、Swift関連の備忘録を書いていきます。<br /><br /> まずはpng画像を簡単に取り出す方法について。 <span class="f080 l_gray">メルストの記事じゃなくてゴメンナサ…</span><br /><div class="fold_post"><br /> 今回は、プロジェクトファイル内にリソース画像などを格納するbundleファイルを設置し、<br /> そこから画像を吸い出す方法で行きたいと思います。<br /> <br /> まずは、bundleの作成から。<br /> 以下の作業を行う前に、ファイルの拡張子を表示するモードにしておいてください。<br /> <br /><h3 class="section_title putit_caption l_green">bundleの作成</h3><br /> プロジェクトのフォルダをFinderで開き、おもむろに新規フォルダを作成します。<br /> <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_a01.jpg"><img loading="lazy" class="alignnone size-full wp-image-4294" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_a01.jpg" alt="20151218_a01" width="624" height="341" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_a01.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_a01-300x163.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><br /> <br /> フォルダができたら、名前を「***.bundle」に変更します。<br /> 今回は「resources.bundle」にしましょう！ <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_a02.jpg"><img loading="lazy" class="alignnone size-full wp-image-4295" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_a02.jpg" alt="20151218_a02" width="624" height="341" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_a02.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_a02-300x163.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><br /><br /> すると「まじ？」と聞かれるので「あたぼうよ」と答えます。<br /> <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_a03.jpg"><img loading="lazy" class="alignnone size-full wp-image-4296" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_a03.jpg" alt="20151218_a03" width="624" height="341" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_a03.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_a03-300x163.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><br /><br /> フォルダの拡張子がbundleに変わり、アイコンも変わりました。<br /> <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_a04.jpg"><img loading="lazy" class="alignnone size-full wp-image-4297" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_a04.jpg" alt="20151218_a04" width="624" height="341" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_a04.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_a04-300x163.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a> 空のbundleファイルができました！<br /> <br /> 今度は、bundleファイルをプロジェクトに追加します。<br /> Fileメニューから<span class="f_blue">「Add Files to &#8230;」</span>でプロジェクトにファイルを追加します。<br /> <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_b01.jpg"><img loading="lazy" class="alignnone size-full wp-image-4302" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_b01.jpg" alt="20151218_b01" width="624" height="464" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_b01.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_b01-300x223.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><br /> <br /> 先ほど作成したbundleファイルを選択します。<br /> <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_b02.jpg"><img loading="lazy" class="alignnone size-full wp-image-4303" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_b02.jpg" alt="20151218_b02" width="624" height="286" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_b02.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_b02-300x137.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><br /><br /> プロジェクトにbundleファイルが追加されました！<br /> <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_b03.jpg"><img loading="lazy" class="alignnone size-full wp-image-4304" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_b03.jpg" alt="20151218_b03" width="624" height="286" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_b03.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_b03-300x137.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><br /><br /> これ以降は、FinderからXcode内のbundleファイルに直接ドラッグ&amp;ドロップで、プロジェクト内で取り扱いたいpng画像を取り込むことができます。<br /><br /> 試しに、画像を一点ドラッグして追加してみます。<br /> こんな画像があったとして。<br /> <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_b04.jpg"><img loading="lazy" class="alignnone size-full wp-image-4305" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_b04.jpg" alt="20151218_b04" width="100" height="100" /></a><br /><br /> ドラッグすると、追加されます。 <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_b05.jpg"><img loading="lazy" class="alignnone size-full wp-image-4306" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_b05.jpg" alt="20151218_b05" width="624" height="439" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_b05.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_b05-300x211.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><br /><br /> <br /> 次は、いよいよこの画像を呼んでみます。 <br /><h3 class="section_title putit_caption l_green">bundleからpng画像を呼ぶ</h3><br /> 先にソースを張ってしまいますが、png画像を呼ぶ為の関数はこちらです。</p>
<pre class="brush:swift" title="getResourceImage">/// リソース内からpng画像を取り出し、NSData形式で返却する
/// - parameter name : 画像の名前(パス)。拡張子[png]は省略。
/// - returns : NSData形式のpng画像 存在しなければnilを返す。
func getResourceImage(name:String)-&gt; NSData?{
    let bundlePath : String = NSBundle.mainBundle().pathForResource("resources", ofType: "bundle")!
    let bundle : NSBundle = NSBundle(path: bundlePath)!
    if let imagePath : String = bundle.pathForResource(name, ofType: "png"){
        let fileHandle : NSFileHandle = NSFileHandle(forReadingAtPath: imagePath)!
        let imageData : NSData = fileHandle.readDataToEndOfFile()
        return imageData
    }
    return nil
}</pre>
<p>この関数はどこに書いてもいいのですが、どこからでも呼べるように、 新しくUtil.swiftというファイルを作り、その中に置いてみます。<br /> <br /> <span class="f_blue">File &gt; New &gt; File</span>を選び、 <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_c01.jpg"><img loading="lazy" class="alignnone size-full wp-image-4307" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_c01.jpg" alt="20151218_c01" width="624" height="307" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_c01.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_c01-300x147.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><br /><br /> Swiftファイルを選びます。 <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_c02.jpg"><img loading="lazy" class="alignnone size-full wp-image-4308" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_c02.jpg" alt="20151218_c02" width="624" height="443" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_c02.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_c02-300x212.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><br /><br /> 名前をつけて、プロジェクトのグループ内に配置しましょう。 <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_c03.jpg"><img loading="lazy" class="alignnone size-full wp-image-4309" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_c03.jpg" alt="20151218_c03" width="624" height="582" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_c03.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_c03-300x279.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a> <br /><br /> 新しいSwiftファイルができたら、その中に先ほどのソースを貼り付けます。 <a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_c05.jpg"><img loading="lazy" class="alignnone size-full wp-image-4314" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_c05.jpg" alt="20151218_c05" width="624" height="402" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_c05.jpg 624w, https://yugalab.net/wp-content/uploads/2015/12/20151218_c05-300x193.jpg 300w" sizes="(max-width: 624px) 100vw, 624px" /></a><br /><br /> これで準備完了です！！ <br /><br /><h3 class="section_title putit_caption l_green">使い方</h3><br /> 以下のように、拡張子(png)を抜かしたファイル名で呼び出します。 画像が存在しない場合はnilが返るので、無かった場合の処理も考えておきましょう。<br /> こちらの例では、返ってきたNSDataを利用してUIImageを生成しています。
<pre class="brush:swift">let testData : NSData? = getResourceImage("test")
if testData != nil{
	let testImage : UIImage! = UIImage(data: testData! )

	// do something...

}</pre>
<br /> また、以下のようにbundle内にフォルダを作って、その中の画像を呼び出したい場合は、スラッシュを挟めば大丈夫です！<br/><a href="https://yugalab.net/wp-content/uploads/2015/12/20151218_d01.jpg"><img loading="lazy" class="alignnone size-full wp-image-4315" src="https://yugalab.net/wp-content/uploads/2015/12/20151218_d01.jpg" alt="20151218_d01" width="300" height="383" srcset="https://yugalab.net/wp-content/uploads/2015/12/20151218_d01.jpg 300w, https://yugalab.net/wp-content/uploads/2015/12/20151218_d01-234x300.jpg 234w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<pre class="brush:swift">let testData : NSData? = getResourceImage("images/test2")</pre>
<br/>
<br /><h4 class="section_subtitle putit_caption">解説</h4>
<pre class="brush:swift first-line:5">
let bundlePath : String = NSBundle.mainBundle().pathForResource("resources", ofType: "bundle")!
</pre>
まず、こちらの行はプロジェクト内から「resources」という名前をbundleのパスを生成しています。<br />
プロジェクト内にresourcesというbundleが無いと大変なことになります。
<pre class="brush:swift first-line:6">
let bundle : NSBundle = NSBundle(path: bundlePath)!
</pre>
次に、bundleのパスからbundleのインスタンスを得ます。<br />
<pre class="brush:swift first-line:7">
if let imagePath : String = bundle.pathForResource(name, ofType: "png"){
</pre>
そして、bundle内に指定した名前のpng画像があるかどうか調べています。<br/>
<pre class="brush:swift first-line:8">
    let fileHandle : NSFileHandle = NSFileHandle(forReadingAtPath: imagePath)!
    let imageData : NSData = fileHandle.readDataToEndOfFile()
    return imageData
</pre>
そして、画像があった場合は読み込んで、NSDataとして返します。
</div>
</p><p>The post <a href="https://yugalab.net/archives/4288">【Swift】プロジェクト内に置いたpng画像をNSDataとして取り出す</a> first appeared on <a href="https://yugalab.net">ユガラボ</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://yugalab.net/archives/4288/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【備忘録】Xcodeの実機テストで、ログが出力されなくなった</title>
		<link>https://yugalab.net/archives/158</link>
		
		<dc:creator><![CDATA[ユーリ]]></dc:creator>
		<pubDate>Thu, 13 Nov 2014 01:49:25 +0000</pubDate>
				<category><![CDATA[swift]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[xcode]]></category>
		<category><![CDATA[備忘録]]></category>
		<guid isPermaLink="false">http://yugalab.net/?p=158</guid>

					<description><![CDATA[<p>こんにちは。 Xcodeでのコーディング中のこと。 シミュレータでの動作ではconsoleにログが出力されるのに、 実機テストを行うとログが出力されなくなる　ということがありました。 結論から言いますと・・・ Xcode [&#8230;]</p>
<p>The post <a href="https://yugalab.net/archives/158">【備忘録】Xcodeの実機テストで、ログが出力されなくなった</a> first appeared on <a href="https://yugalab.net">ユガラボ</a>.</p>]]></description>
										<content:encoded><![CDATA[こんにちは。<br/>
<br/>
Xcodeでのコーディング中のこと。<br/>
シミュレータでの動作ではconsoleにログが出力されるのに、<br/>
実機テストを行うとログが出力されなくなる　ということがありました。<br/>
<br/>
<span id="more-158"></span>
<br/>
<h3 class="putit_caption l_green font120">結論から言いますと・・・</h3><br/>
Xcodeメニューのproductから<span class="l_red">Edit Scheme&#8230;</span>内の<br/>
<span class="l_red">Debug executable</span>にチェックを入れたら直りました。<br/>
<a href="https://yugalab.net/wp-content/uploads/2014/11/20141112.jpg"><img loading="lazy" src="https://yugalab.net/wp-content/uploads/2014/11/20141112.jpg" alt="20141112_1" width="620" height="245" class="alignnone size-full wp-image-163" srcset="https://yugalab.net/wp-content/uploads/2014/11/20141112.jpg 620w, https://yugalab.net/wp-content/uploads/2014/11/20141112-300x118.jpg 300w" sizes="(max-width: 620px) 100vw, 620px" /></a><br/>
<br/>
一度リリースビルドを行ってしばらくしたあと、<br/>
アプリのバージョンアップの為にビルド設定をdebugに戻したあとのことでした。<br/>
どうやら、デバッグ時の動作に関する設定だったようですね。<br/>
ググっても見つからなかったのですが、いろいろ試した結果直ったので、書き留めておきます！<p>The post <a href="https://yugalab.net/archives/158">【備忘録】Xcodeの実機テストで、ログが出力されなくなった</a> first appeared on <a href="https://yugalab.net">ユガラボ</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
