الاثنين، 1 نوفمبر 2010

عالم آبل: سلسلة دروس برمجة تطبيقات الآيفون (2) “أمثلة تطبيقية 2”

عالم آبل: سلسلة دروس برمجة تطبيقات الآيفون (2) “أمثلة تطبيقية 2”

Link to عالم آبل

سلسلة دروس برمجة تطبيقات الآيفون (2) “أمثلة تطبيقية 2”

Posted: 01 Nov 2010 01:42 AM PDT

في الأمثلة السابقة رأينا كيف نضيف إلى الـ string أيضا string أخرى وذلك بإستعامل %@ لكن إذا أردنا إضافة عدد صحيح integer نستخدم %d :

int myAge = 34;

NSString *hisAge = [NSString stringWithFormat: @"He is %d years old", myAge];

NSLog(hisAge);

من الدوال التابعة إلى الـ NSString لو أردت أن أضيف String إلى String أخرى نستخدم stringByAppendingString:

NSString *myString =@”Hello”;

NSString *fullString;

fullString = [myString stringByAppendingString:@" world!"];

NSLog(fullString);

وستظهر Hello world !  كاملة.

هذا مثال آخر لدوال آخرى تابعة أيضاً للـ NSString وهي عندما أريد أن أعرف هل في آخر الـ string قيمة معينة والدالة الثانية إذا كانت قيمة الـ string عدد صحيح وأريد أن أقارن بهذا العدد الصحيح:

NSString *myString = @”Hello”;

NSString *otherString = @”449″;

if ([myString hasSuffix:@"lo"]) {

NSLog(@”its have”);

}

if ([otherString intValue] > 400) {

NSLog(@”its bigger”);

}

ستكون النتيجة كالتالي:

هناك دوال آخرى كثيرة تابعة لهذه الـ class يمكن الرجوع إليها من خلال الـ help التابع للـ xcode وكتابة NSString Class Reference.

يوجد نوع جديد يتبع للـ NSString وهو NSMutableString الفرق بينه وبين الـ NSString هو حرية التعديل على الـ string التابعة له ففي الـ NSString عندما أعدل عليه سيضع القيمة الأولى في pointer ثم يحفظ القيمة الجديدة في pointer  آخر وبعد التعديل يقوم بحذف القيمة الأولى ووضع القيمة الجديدة أما في الثانية فهي تقوم بالتعديل على نفس الـ pointer  مباشرة بدون حذف وإضافة وهذا مثال عليها:

double favoriteNumber = 3.55;

NSMutableString *newString = [NSMutableString string];

[newString appendString:@"Hi"];

[newString appendFormat:@", my favorite number is: %f",favoriteNumber];

NSLog(newString);

هناك أنواع أخرى من الـ  objects يمكن الرجوع إليها (Array, Dictionary, set) سنأخذ مثال لكل منها:

Array:

//for array

NSArray *array = [NSArray arrayWithObjects:@"Red", @"Blue", @"Green", nil];

if ([array indexOfObject:@"Purple"] == NSNotFound){

NSLog (@”No color purple”);

}

for (NSString *element in array) {

NSLog(@”element: %@”, element);

}

عرفنا Array وبحثنا عن قيمة معينة في Array اللي هي الـ purple ثم قمنا بعرض القيم الموجودة في الـ Array

مع ملاحظة عند تعريف أي Array لابد أن تنتهي بقيمة nil.

Dictionary:

NSDictionary *colors = [NSDictionary dictionaryWithObjectsAndKeys:@"Red", @"Color 1", @"Green", @"Color 2", @"Blue", @"Color 3", nil];

if (![colors objectForKey:@"Color 8"]) {

NSLog (@”No color 8″);

}

عرفنا dictionary وعطينا قيمة للـ object وقيمة للـ key ثم بحثنا عن key في الـ dictionary وستظهر الرسالة بأنه لايوجد وأيضا لابد أن ينتهي تعريف الـ dictionary بـ nil.

Set:

NSSet *set = [NSSet setWithObjects:

@"Alpha", @"Beta", @"Gamma", @"Delta", nil];

NSString *setElement;

for (setElement in set) {

NSLog(@”element: %@”, setElement);}

عرفنا set وأنهينا القيم بـ nil وقمنا بعد ذلك بعرض هذه القيم.

مع العلم أن لكل من هذه الأنواع الثلاثة لها أيضا mutable كما في string.

انتهى شرح الأمثلة التطبيقية..

دمتم بود :)

مواضيع مشابهة: