<rss version="2.0">
	<channel>
    	<title>عزوز الحسني - المدونة</title>
		<link>http://azzozhsn.net</link> 
		<description>مدونة عزوز الحسني</description>
                		<item>
			<title>بدء دورة في لغة #C</title> 
			<pubDate>Sat, 28 Jan 2012 10:13:31 +0000</pubDate> 
			<author>عزوز الحسني</author> 
			<link>http://azzozhsn.net/blog/show/602</link> 
			<guid isPermaLink="true">http://azzozhsn.net/blog/show/602</guid> 
			<description><![CDATA[<p>بالأمس بدأت &nbsp;سلسلة خطوة خطوة في لغة C واليوم أبدأ سلسلة أخرى في لغة #C وستسير هاتين السلسلتين تزامناً مع بعضهما.</p>
<p>الدرس الأول في لغة #C:</p>
<p><iframe src="http://www.youtube.com/embed/kf92KgxY6Wc" width="320" height="240"></iframe></p>]]></description> 
		</item>
				<item>
			<title>بدء سلسلة خطوة خطوة في لغة C</title> 
			<pubDate>Fri, 27 Jan 2012 09:01:12 +0000</pubDate> 
			<author>عزوز الحسني</author> 
			<link>http://azzozhsn.net/blog/show/601</link> 
			<guid isPermaLink="true">http://azzozhsn.net/blog/show/601</guid> 
			<description><![CDATA[<p>اليوم بدأت&nbsp;سلسلة خطوة خطوة في لغة C وهي دروس في لغة البرمجة C وأعتذر من متابعي دروس تطوير تطبيقات iOS، فحالياً ليس لدي جهاز Mac ولكن أوجهكم لمتابعة دروس الأخ <a href="http://www.youtube.com/user/iMr3li">علي الزهراني على قناته</a>.</p>
<p>الدرس الأول في لغة C</p>
<p><iframe src="http://www.youtube.com/embed/PfUeXzc3_qI" width="320" height="240"></iframe></p>]]></description> 
		</item>
				<item>
			<title>اعتذار للزوار</title> 
			<pubDate>Sun, 01 Jan 2012 08:19:40 +0000</pubDate> 
			<author>عزوز الحسني</author> 
			<link>http://azzozhsn.net/blog/show/600</link> 
			<guid isPermaLink="true">http://azzozhsn.net/blog/show/600</guid> 
			<description><![CDATA[<p>بالأمس لاحظت أن نموذج المراسلة الخاص بالموقع لم يكن يعمل، لذلك أعتذر لكل من راسلني خلال الفترة الماضية ولم أرد عليهم لأن رسائلهم لم تصلني.</p>
<p>كذلك مرت فترة على الموقع بدون تحديث كنت مشغولاً بالدراسة وقرب الاختبارات، وقريباً إن شاء الله لي عودة في التدوين وفي طرح الدروس.</p>]]></description> 
		</item>
				<item>
			<title>حفظ واسترجاع البيانات من وإلى الملفات</title> 
			<pubDate>Wed, 14 Dec 2011 13:31:01 +0000</pubDate> 
			<author>عزوز الحسني</author> 
			<link>http://azzozhsn.net/blog/show/599</link> 
			<guid isPermaLink="true">http://azzozhsn.net/blog/show/599</guid> 
			<description><![CDATA[<p>في هذا الدرس سنتعرف على حفظ واسترجاع البيانات من وإلى الملفات. وبهذا نصل إلى نهاية هذه الدورة.</p>
<p><iframe src="http://www.youtube.com/embed/5_XokN3KCno" width="320" height="240"></iframe></p>]]></description> 
		</item>
				<item>
			<title>حدث الضغط على خلية، وUIWebView</title> 
			<pubDate>Mon, 12 Dec 2011 23:09:15 +0000</pubDate> 
			<author>عزوز الحسني</author> 
			<link>http://azzozhsn.net/blog/show/598</link> 
			<guid isPermaLink="true">http://azzozhsn.net/blog/show/598</guid> 
			<description><![CDATA[<p>في هذا الدرس سنتعرف على طريقة استخدام حدث النقر على خلية، وكذلك استخدام المكون UIWebView كمتصفح وكيفية عرض صفحة ويب عليه</p>
<p><iframe src="http://youtube.com/embed/Xe3k6eu6Igc" width="320" height="240"></iframe></p>]]></description> 
		</item>
				<item>
			<title>المزيد عن الجداول في iOS</title> 
			<pubDate>Wed, 07 Dec 2011 17:27:08 +0000</pubDate> 
			<author>عزوز الحسني</author> 
			<link>http://azzozhsn.net/blog/show/597</link> 
			<guid isPermaLink="true">http://azzozhsn.net/blog/show/597</guid> 
			<description><![CDATA[<p>في الدرس السابق تعرفنا على كيفية عرض بيانات بسيطة على الجدول، في هذا الدرس سنعرض بيانات إضافية بأشكال مختلفة.</p>
<p><iframe src="http://www.youtube.com/embed/XplU-e2jUjk" width="320" height="240"></iframe></p>]]></description> 
		</item>
				<item>
			<title>الجداول في تطبيقات iOS</title> 
			<pubDate>Sun, 04 Dec 2011 23:03:32 +0000</pubDate> 
			<author>عزوز الحسني</author> 
			<link>http://azzozhsn.net/blog/show/596</link> 
			<guid isPermaLink="true">http://azzozhsn.net/blog/show/596</guid> 
			<description><![CDATA[<p><iframe src="http://www.youtube.com/embed/gXEtPir8w1c" width="320" height="240"></iframe></p>]]></description> 
		</item>
				<item>
			<title>الدمج بين TabBar و Navigation</title> 
			<pubDate>Thu, 01 Dec 2011 15:16:29 +0000</pubDate> 
			<author>عزوز الحسني</author> 
			<link>http://azzozhsn.net/blog/show/595</link> 
			<guid isPermaLink="true">http://azzozhsn.net/blog/show/595</guid> 
			<description><![CDATA[<p>في هذا الدرس سنتعرف على طريقة الدمج بين UITabBarController و UINavigationController.</p>
<p><iframe src="http://www.youtube.com/embed/-cCPvpjl86o" width="320" height="240"></iframe></p>]]></description> 
		</item>
				<item>
			<title>التنقل بين شاشات البرنامج باستخدام UITabBarController</title> 
			<pubDate>Mon, 28 Nov 2011 07:51:19 +0000</pubDate> 
			<author>عزوز الحسني</author> 
			<link>http://azzozhsn.net/blog/show/594</link> 
			<guid isPermaLink="true">http://azzozhsn.net/blog/show/594</guid> 
			<description><![CDATA[<p>في هذا الدرس سنقوم بعرض وذلك التنقل بين عدة شاشات باستخدام الألسنة tabs، عبر التحكم UITabBarController</p>
<p><iframe src="http://www.youtube.com/embed/nbJcFFc1dz4" frameborder="0" width="320" height="240"></iframe></p>
<p>لاحظت خطا بسيط في الفيديو، وهو أني نسيت إضافة self قبل أحد متغيرات tab.</p>]]></description> 
		</item>
				<item>
			<title>توضيح لبعض الأمور في objective-c</title> 
			<pubDate>Sat, 26 Nov 2011 03:40:59 +0000</pubDate> 
			<author>عزوز الحسني</author> 
			<link>http://azzozhsn.net/blog/show/593</link> 
			<guid isPermaLink="true">http://azzozhsn.net/blog/show/593</guid> 
			<description><![CDATA[<p>الدورة المقدمة حالياً هي للمبرمجين عموماً، ولغة objective-c تختلف صياغتها النحوية عن أغلب اللغات المعروفة خصوصاً عند استدعاء الدوال وأفعال الكائنات. فمثلاً السطر التالي:</p>
<p dir="ltr"><span style="font-family: courier new,courier;">NSObject *object = [NSObject alloc] init];</span></p>
<p>يناظر من وجهة نظر نحوية فقط السطرين التاليين:</p>
<p dir="ltr"><span style="font-family: courier new,courier;">NSObject *object =&nbsp;NSObject.alloc();<br />object.init();</span></p>
<p dir="rtl">أو كما يلي في بعض لغات البرمجة</p>
<p dir="ltr"><span style="font-family: courier new,courier;">NSObject *object =&nbsp;NSObject-&gt;alloc();<br />object-&gt;init();</span></p>
<p>ما حدث هنا أننا استدعينا الدالة alloc من الصنف NSObject وأعادت لنا كائناً من الصنف&nbsp;NSObject ثم استدعينا الدالة init من هذا الكائن. حيث تقوم الدالة alloc بحجز مكان في الذاكرة لكائن من نوع NSObject في مثالنا، والدالة init تقوم بتهيئة هذا الكائن. وبالمناسبة لا تفصل أبداً بين alloc, init واجعلها في نفس السطر - أدري حقيقة ماذا سيحدث لوخالفت هنا - حيث تأخد الدالة init نتيجة الدالة alloc مباشرة،</p>
<p>قد يكون هذا المثال معقد لأنه استدعاء داخل استدعاء، لنأخذ المثال التالي:</p>
<p dir="ltr"><span style="font-family: courier new,courier;">[object release];</span></p>
<p dir="rtl">هذا السطر لو أردت تحويلة إلى طريقة معروفة ستكون كالتالي:</p>
<p dir="ltr"><span style="font-family: courier new,courier;">object.release();</span></p>
<p dir="rtl">أو كما يلي في بعض لغات البرمجة</p>
<p dir="ltr"><span style="font-family: courier new,courier;">object-&gt;release();</span></p>
<p dir="rtl">حيث نستدعي الدالة release لتحرير الكائن من الذاكرة. أو بالأصح، لإنقاص عداد الفهرسة الخاص بالكائن، حتى إذا ما وصل إلى الصفر يحرر من الذاكرة، ساخصص موضوعاً حول إدارة الذاكرة قريباً.</p>
<p dir="rtl">عند تعريف الدالة نضع نوع القيمة أو المؤشر الذي تعيده الدالة بين قوسين، كما يلي:</p>
<p dir="ltr"><span style="font-family: courier new,courier;">- (float)PI<br /> {<br />&nbsp;&nbsp;&nbsp;&nbsp; return 3.14<br /> }</span></p>
<p dir="rtl">بدلاً من:</p>
<p dir="ltr"><span style="font-family: courier new,courier;">float PI()<br /> {<br />&nbsp;&nbsp;&nbsp;&nbsp; return 3.14<br /> }</span></p>
<p dir="rtl">حسناً، ما معنى علامة - في البداية؟ هذه تدل على أن هذه الدالة فعل للكائن (instance method) ولو وضعنا علامة + تصبح دالة تستدعى من الصنف مباشرة (class method)</p>
<p dir="rtl">ماذا لو كانت الدالة تحتاج إلى عدة معطيات؟ هنا الأمر يصبح أكثر غرابة</p>
<p dir="ltr"><span style="font-family: courier new,courier;">- (UITableViewCell *)tableView:(UITableView *)tableView<br /> cellForRowAtIndexPath:(NSIndexPath *)indexPath {<br /> ..........<br />}</span></p>
<p dir="rtl">هذه الدالة اسمها :tableView:cellForRowAtIndexPath وتستقبل معطيين (وسيطين) أحدهما مؤشر من نوع UITableView واسمه tableView والآخرمؤشر من نوع NSIndexPath واسمه indexPath لاحظ كيف مررنا المعطيات في وسط اسم الدالة، هذه الدالة لو أردنا كتابتها بلغة أخرى كما فعلنا في الأعلى لكانت على الشكل التالي:</p>
<p dir="ltr"><span style="font-family: courier new,courier;">UITableViewCell* tableViewCellForRowAtIndexPath(UITableView* tableView, NSIndexPath* indexPath){<br /> ..........<br />}</span></p>
<p dir="rtl">قد تسأل لم كتبت هكذا؟ أعتقد حتى تكون أكثر قابلية للقراءة وقريبة من الكتابة الطبيعية، هذه وجهة نظر أبل على الأقل.</p>
<p dir="rtl">أتمنى ممن قرأ الدرس أن يخبرني عن رأيه فيه.</p>]]></description> 
		</item>
					</channel>
</rss>

