<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Bug Captor の 開發日記帳-Cocoa</title>
<link>http://blog.roodo.com/toki_kanno/archives/cat_13198.html</link>
<description>一些開發程式時的碎碎唸，先找個地方記起來免的忘記</description>
<language>zh-tw</language>
<generator>Roodo Blog System</generator>
<copyright>All Rights Reserved</copyright>
<atom:link href="http://blog.roodo.com/toki_kanno/archives/cat_13198.xml" rel="self" type="application/rss+xml" />
<item>
	<title>Cocoa &amp; SQLite</title>
	<description><![CDATA[
			
最近因為某計畫準備開始動作，目前正在做預備研讀資料庫的部分正在考慮XML或是SQLite挑一個XML之前印像中有看到相關的Cocoa物件，於是先找 SQLite 的部分嗯，當然先拜請咕狗大神 Google:// [Cocoa] [SQLite]：：After 30 sec：：addPersistentStoreWithType:configuration:URL:options:error:The store type is a string constant such as NSSQLiteStoreType.啥? NSSQLiteStoreType? 那還有支援啥米?：：After another 30 sec：：Persistent Store TypeDescriptionAvailabilityNSSQLiteStoreTypeA SQLite database.Mac OS X v10.4 and later.NSXMLStoreTypeAn XML file.Mac OS X v10.4 and later.NSBinaryStoreTypeA binary file.Mac OS X v10.4 and later.NSInMemoryStoreTypeAn in-memory store.Mac OS X v10.4 and later.全……全包了是吧(汗)，真是好樣的 Cocoa，這樣會讓人越來越懶啊ORZ
		]]>
	</description>
	<content:encoded><![CDATA[
			<br />
最近因為某計畫準備開始動作，目前正在做預備研讀<br />資料庫的部分正在考慮XML或是SQLite挑一個<br /><br />XML之前印像中有看到相關的Cocoa物件，於是先找 SQLite 的部分<br /><br />嗯，當然先拜請咕狗大神 Google:// [<span style="font-weight: bold;">Cocoa</span>] [<span style="font-weight: bold;">SQLite</span>]<br />：<br />：<br />After 30 sec<br />：<br />：<br /><br /><span style="font-weight: bold;">addPersistentStoreWithType</span>:configuration:URL:options:error:<br /><br />The store type is a string constant such as <span style="font-weight: bold;">NSSQLiteStoreType</span>.<br />啥? NSSQLiteStoreType? 那還有支援啥米?<br /><br />：<br />：<br />After another 30 sec<br />：<br />：<br /><br /><table cellspacing="0" cellpadding="5" border="0" class="graybox"><tbody><tr><th align="left" scope="col"><b><p>Persistent Store Type</p></b></th><th align="left" scope="col"><b><p>Description</p></b></th><th align="left" scope="col"><b><p>Availability</p></b></th></tr><tr><td scope="row"><p><a title="NSSQLiteStoreType" name="//apple_ref/c/econst/NSSQLiteStoreType"></a><a title="NSSQLiteStoreType" name="//apple_ref/doc/c_ref/NSSQLiteStoreType"></a><code>NSSQLiteStoreType</code></p></td><td><p>A SQLite database.</p></td><td><p>Mac OS X v10.4 and later.</p></td></tr><tr><td scope="row"><p><a title="NSXMLStoreType" name="//apple_ref/c/econst/NSXMLStoreType"></a><a title="NSXMLStoreType" name="//apple_ref/doc/c_ref/NSXMLStoreType"></a><code>NSXMLStoreType</code></p></td><td><p>An XML file.</p></td><td><p>Mac OS X v10.4 and later.</p></td></tr><tr><td scope="row"><p><a title="NSBinaryStoreType" name="//apple_ref/c/econst/NSBinaryStoreType"></a><a title="NSBinaryStoreType" name="//apple_ref/doc/c_ref/NSBinaryStoreType"></a><code>NSBinaryStoreType</code></p></td><td><p>A binary file.</p></td><td><p>Mac OS X v10.4 and later.</p></td></tr><tr><td scope="row"><p><a title="NSInMemoryStoreType" name="//apple_ref/c/econst/NSInMemoryStoreType"></a><a title="NSInMemoryStoreType" name="//apple_ref/doc/c_ref/NSInMemoryStoreType"></a><code>NSInMemoryStoreType</code></p></td><td><p>An in-memory store.</p></td><td><p>Mac OS X v10.4 and later.</p></td></tr></tbody></table><br />全……全包了是吧(汗)，真是好樣的 Cocoa，這樣會讓人越來越懶啊ORZ
		
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/toki_kanno/archives/328005.html</link>
	<guid>http://blog.roodo.com/toki_kanno/archives/328005.html</guid>
	<category>Cocoa</category>
	<pubDate>Mon, 01 Aug 2005 17:45:39 +0800</pubDate>
</item>
<item>
	<title>Resize NSImage</title>
	<description><![CDATA[
			NSImage *resizedImage = [[NSImage alloc] initWithSize: theNewSize];

// lock focus on resized image
[resizedImage lockFocus];

[NSGraphicsContext saveGraphicsState];

// set image interpolation -> high (better resize quality)
[[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];

// src draw to resized
[image drawInRect:NSMakeRect(0.0,0.0,theNewSize.width, theNewSize.height)
              fromRect:NSMakeRect(0.0,0.0,[image size].width, [image size].height)
              operation:NSCompositeCopy fraction:1.0];

[NSGraphicsContext restoreGraphicsState];

[resizedImage unlockFocus];
		]]>
	</description>
	<content:encoded><![CDATA[
			NSImage *resizedImage = [[NSImage alloc] initWithSize: theNewSize];<br />
<br />
// lock focus on resized image<br />
[resizedImage lockFocus];<br />
<br />
[NSGraphicsContext saveGraphicsState];<br />
<br />
// set image interpolation -> high (better resize quality)<br />
[[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];<br />
<br />
// src draw to resized<br />
[image drawInRect:NSMakeRect(0.0,0.0,theNewSize.width, theNewSize.height)<br />
              fromRect:NSMakeRect(0.0,0.0,[image size].width, [image size].height)<br />
              operation:NSCompositeCopy fraction:1.0];<br />
<br />
[NSGraphicsContext restoreGraphicsState];<br />
<br />
[resizedImage unlockFocus];
		
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/toki_kanno/archives/216833.html</link>
	<guid>http://blog.roodo.com/toki_kanno/archives/216833.html</guid>
	<category>Cocoa</category>
	<pubDate>Sat, 25 Jun 2005 12:06:50 +0800</pubDate>
</item>
<item>
	<title>從 NSImage 獲得 NSBitmapImageRep</title>
	<description><![CDATA[
			
Lock focus on source NSImage.
Use - (id)initWithFocusedViewRect:(NSRect)rect of NSBitmapImageRep

		]]>
	</description>
	<content:encoded><![CDATA[
			<ol><br />
<li>Lock focus on source NSImage.</li><br />
<li>Use <b><font color=blue>- (id)initWithFocusedViewRect:(NSRect)rect</b></font> of NSBitmapImageRep</li><br />
</ol>
		
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/toki_kanno/archives/216818.html</link>
	<guid>http://blog.roodo.com/toki_kanno/archives/216818.html</guid>
	<category>Cocoa</category>
	<pubDate>Sat, 25 Jun 2005 11:57:06 +0800</pubDate>
</item>
<item>
	<title>Fundation Tool</title>
	<description><![CDATA[
			[little tip]
寫 command line mode 程式的時候，Project 類別時選用 Funcdation Tool
就可以在 coomand line mode 下使用 Cocoa 裡各種方便的物件
		]]>
	</description>
	<content:encoded><![CDATA[
			[little tip]<br />
寫 command line mode 程式的時候，Project 類別時選用 Funcdation Tool<br />
就可以在 coomand line mode 下使用 Cocoa 裡各種方便的物件
		
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/toki_kanno/archives/216781.html</link>
	<guid>http://blog.roodo.com/toki_kanno/archives/216781.html</guid>
	<category>Cocoa</category>
	<pubDate>Sat, 25 Jun 2005 11:23:47 +0800</pubDate>
</item>
<item>
	<title>在Cocoa下將字串由中文轉到 UTF8</title>
	<description><![CDATA[
			UInt32 big5 = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingBig5_HKSCS_1999);

NSString* test = [NSString stringWithCString:"中文測試" encoding:big5];
NSLog("%@", [test UTF8String]);
		]]>
	</description>
	<content:encoded><![CDATA[
			UInt32 big5 = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingBig5_HKSCS_1999);<br />
<br />
NSString* test = [NSString stringWithCString:"中文測試" encoding:big5];<br />
NSLog("%@", [test UTF8String]);
		
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/toki_kanno/archives/131539.html</link>
	<guid>http://blog.roodo.com/toki_kanno/archives/131539.html</guid>
	<category>Cocoa</category>
	<pubDate>Mon, 16 May 2005 21:04:02 +0800</pubDate>
</item>
<item>
	<title>Cocoa - NSLog 應用</title>
	<description><![CDATA[
			NSLog主要用以顯示除錯訊息，其用法和一般printf相同
但NSLog會在訊息前加入程式名稱及時間碼

另外，由於Cocoa中大部分的函式都是吃NSString
也因此，NSLog的用法會變成如下(要在字串的雙引號前加上@符號)

EX:
NSLog(@"Object description = %@", testobj);

其中%@ 的格式字串(format string)代表印出物件描述(object description)
而物件描述又可以透過覆載(override)該物件的description method來更改

最後，若寫的是GUI程式，則預設NSLog的訊息是不會顯示的，要用Debug模式去跑
才會有除錯訊息出現。
		]]>
	</description>
	<content:encoded><![CDATA[
			NSLog主要用以顯示除錯訊息，其用法和一般printf相同<br />
但NSLog會在訊息前加入程式名稱及時間碼<br />
<br />
另外，由於Cocoa中大部分的函式都是吃NSString<br />
也因此，NSLog的用法會變成如下(要在字串的雙引號前加上@符號)<br />
<br />
EX:<br />
NSLog(@"Object description = %@", testobj);<br />
<br />
其中%@ 的格式字串(format string)代表印出物件描述(object description)<br />
而物件描述又可以透過覆載(override)該物件的description method來更改<br />
<br />
最後，若寫的是GUI程式，則預設NSLog的訊息是不會顯示的，要用Debug模式去跑<br />
才會有除錯訊息出現。
		
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/toki_kanno/archives/69774.html</link>
	<guid>http://blog.roodo.com/toki_kanno/archives/69774.html</guid>
	<category>Cocoa</category>
	<pubDate>Mon, 11 Apr 2005 01:41:17 +0800</pubDate>
</item>
<item>
	<title>Cocoa 下直接存取圖檔 pixel 的方式</title>
	<description><![CDATA[
			unsigned char* byte;


//註: 下面(1)(2)兩行可以合成一行
// NSBitmapImageRep* tmpbmp = [[NSBitmapImageRep alloc]  initWithBitmapDataPlanes: nil
 ... blah blah blah];

NSBitmapImageRep* tmpbmp = [NSBitmapImageRep alloc]; //(1)
[tmpbmp initWithBitmapDataPlanes: nil //(2)
	      pixelsWide: 24
	      pixelsHigh: 24
	      bitsPerSample: 1
	      samplesPerPixel: 1
                hasAlpha: NO
                isPlanar: YES
                colorSpaceName: NSCalibratedWhiteColorSpace
                bytesPerRow: 3
                bitsPerPixel: 1];

byte = [tmpbmp bitmapData]; // 這個指標指向圖形的像素資料
		]]>
	</description>
	<content:encoded><![CDATA[
			unsigned char* byte;<br />
<br />
<br />
//註: 下面(1)(2)兩行可以合成一行<br />
<font color=blue>// NSBitmapImageRep* tmpbmp = [[NSBitmapImageRep alloc]  initWithBitmapDataPlanes: nil<br />
 ... blah blah blah];</font><br />
<br />
NSBitmapImageRep* tmpbmp = [NSBitmapImageRep alloc]; //<font color=red>(1)</font><br />
[tmpbmp initWithBitmapDataPlanes: nil //<font color=red>(2)</font><br />
	      pixelsWide: 24<br />
	      pixelsHigh: 24<br />
	      bitsPerSample: 1<br />
	      samplesPerPixel: 1<br />
                hasAlpha: NO<br />
                isPlanar: YES<br />
                colorSpaceName: NSCalibratedWhiteColorSpace<br />
                bytesPerRow: 3<br />
                bitsPerPixel: 1];<br />
<br />
byte = [tmpbmp bitmapData]; // 這個指標指向圖形的像素資料
		
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/toki_kanno/archives/64890.html</link>
	<guid>http://blog.roodo.com/toki_kanno/archives/64890.html</guid>
	<category>Cocoa</category>
	<pubDate>Thu, 07 Apr 2005 17:16:20 +0800</pubDate>
</item>
<item>
	<title>Cocoa 下的 Message Dialog</title>
	<description><![CDATA[
			Cocoa 下的 Message Dialog 請用

NSRunAlertPanel(@"視窗標題",  @"顯示訊息", @"預設按鈕文字，通常是OK", nil, nil);

後面兩個不常用的設成 nil 或 NULL 即可
		]]>
	</description>
	<content:encoded><![CDATA[
			Cocoa 下的 Message Dialog 請用<br />
<br />
NSRunAlertPanel(@"視窗標題",  @"顯示訊息", @"預設按鈕文字，通常是OK", nil, nil);<br />
<br />
後面兩個不常用的設成 nil 或 NULL 即可
		
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/toki_kanno/archives/64887.html</link>
	<guid>http://blog.roodo.com/toki_kanno/archives/64887.html</guid>
	<category>Cocoa</category>
	<pubDate>Thu, 07 Apr 2005 17:10:54 +0800</pubDate>
</item>
</channel>
</rss>