Bài 7: Các Đối tượng cơ bản trong Objective-C

7: Các Đối tượng cơ bản trong Objective-C
Trước khi tiến hành, bạn phải nhớ một quy ước:
- Khi nhắc đến thứ tự, thì thứ tự của vị trí đầu tiên được tính là 0 (bắt đầu từ 0)
- Khi nhắc đến số lượng thì số lượng đầu tiên được tính là 1 (bắt đầu từ 1)

1. NSString:
Như các bạn biết, String là chuỗi (trong các ngôn ngữ lập trình).
Vậy NSString là gì? Là một đối tượng. Khi tạo một biến với đối tượng này, ta sẽ có nơi lưu trữ chuỗi cần thiết và không giới hạn về độ dài của chuỗi mà bạn lưu vào biến đó.

Cách khai báo:

NSString *Chuoi1;
// Khai báo biến có tên là Chuoi1

NSString *Chuoi2 = [NSString stringWithFormat:@"Day la chuoi 1"];
// Khai báo biến có tên là Chuoi2 và gán giá trị "Đây là chuỗi 1" vào biến vừa tạo

NSString *Chuoi3 = [NSString stringWithString:Chuoi2];
// Khai báo biến có tên là Chuoi3 và gán giá trị của Chuoi2 cho Chuoi3 vừa tạo

Các hàm xử lý chuỗi đối với NSString:
– length: lấy độ dài của chuỗi
NSLog(@"%ld", [Chuoi2 length]);

– characterAtIndex: Lấy ra kỹ tự ở vị trí chỉ định
NSLog(@"%c", [Chuoi2 characterAtIndex:5]);

– componentsSeparatedByString: Cắt chuỗi thành nhiều phần
NSLog(@"%@", [Chuoi2 componentsSeparatedByString:@"la"]);

– substringFromIndex: Lấy ra chuỗi con tính từ vị trí chỉ định đến cuối chuỗi
NSLog(@"%@", [Chuoi2 substringFromIndex:3]);

– substringToIndex: Lấy ra chuỗi con tính từ vị trí chỉ định đến đầu chuỗi
NSLog(@"%@", [Chuoi2 substringToIndex:3]);

– rangeOfString: Tìm xem một chuỗi nào có có tồn tại trong chuỗi cho trước hay không
NSLog(@"%lu", [Chuoi2 rangeOfString:@"chuoi"].location);

– stringByReplacingOccurrencesOfString:withString: Thay thế một chuỗi bằng một chuỗi mới trong chuỗi cho trước
NSLog(@"%@", [Chuoi2 stringByReplacingOccurrencesOfString:@"1"withString:@"da bi thay the"]);

– compare: So sánh hai chuỗi với nhau
NSLog(@"%ld", [Chuoi2 compare:@"Day la chuoi 3"]);
// 0 nghĩa là 2 chuỗi giống nhau, -1 nghĩa là hai chuỗi khác nhau

– intValue: Lấy số nguyên ra từ chuỗi.
NSLog(@"%i", [Chuoi2 intValue]);

2. NSMutableString
MutableString cũng tương tự như String, nhưng MutableString thì có thể chỉnh sửa được đến từng ký tự bên trong chuỗi.
Còn String chỉ có thể gán, thay thế toàn bộ giá trị trong đó,... Tí nữa, khi nhìn một số hàm khác, bạn sẽ hiểu.
Hiểu nôm na là String thì khả năng thay thế, xử lý chuỗi hạn chế hơn MutableString.

*** Và từ nay về sau, khi một đối tượng nào có tính "Mutable" (ví dụ: MutableString, MutableArray, MutableDictionary, ...) thì bạn sẽ hiểu là tính thay thế, chỉnh sửa giá trị sẽ dễ dàng, thuận tiện. Và ngoài ra còn gọi đó là tính "động" của giá trị.

Cách khai báo:
NSMutableString *ChuoiDong1;
NSMutableString *ChuoiDong2 = [[NSMutableString allocinit];
NSMutableString *ChuoiDong3 = [NSMutableString stringWithString:Chuoi2];
// Các bạn cũng khai báo hoàn toàn giống với String tĩnh.
// Có điều, nếu muốn một MutableString hoạt động, bạn cần gán vùng nhớ cho nó bằng cách init (dòng 2) hoặc gán ngay vào đó một chuỗi bất kỳ, hoặc một chuỗi không có ký tự (@"")

Các hàm xử lý chuỗi với MutableString:
Hoàn toàn giống với String, MutableString kế thừa toàn bộ những hàm mà String có.
Ngoài ra còn thêm một số hàm mà bạn cần quan tâm như sau:

– appendFormat: Ghép thêm một chuỗi với các định dạng thêm vào cuối chuỗi đã cho
[ChuoiDong3 appendFormat:@" - abc - "];
NSLog(@"%@", ChuoiDong3);

– appendString: Ghép thêm một chuỗi bất kỳ vào cuối chuỗi đã cho
[ChuoiDong3 appendString:Chuoi2];
NSLog(@"%@", ChuoiDong3);

– deleteCharactersInRange: Xoá ký tự bất kỳ trong chuỗi với vị trí được chỉ định
[ChuoiDong3 deleteCharactersInRange:NSMakeRange(23)];
NSLog(@"%@", ChuoiDong3);

– insertString:atIndex: Chèn thêm chuỗi vào vị trí được chỉ định
[ChuoiDong3 insertString:@"INSERT"atIndex:3];
NSLog(@"%@", ChuoiDong3);

– replaceCharactersInRange:withString: Thay thế ký tự ở vị trí chỉ định với một chuỗi bất kỳ
[ChuoiDong3 replaceCharactersInRange:NSMakeRange(12withString:@"-REPLACE-"];
NSLog(@"%@", ChuoiDong3);

3. NSArray
Đây là mảng.
Mảng là tập hợp nhiều giá trị với nhau có cùng hoặc khác kiểu (tuỳ theo mục đích sử dụng).
Bạn có thể đọc thêm về mảng ở đây: http://vi.wikipedia.org/wiki/Mảng_(tin_học)

Cách khai báo:
NSArray *Mang1;
NSArray *Mang2 = [NSArray arrayWithObjects:@"ky tu"@"ky tu 2"@"chuoi"nil];
NSArray *Mang3 = [NSArray arrayWithObjects:@"abc"@"def",nil];
NSArray *Mang4 = [NSArray arrayWithArray:Mang2];

Các hàm xử lý, thao tác với mảng:
– containsObject: Kiểm tra xem trong mảng phần tử nào đó hay không
[Mang2 containsObject:@"ky tu"] ? NSLog(@"Co") : NSLog(@"khong");

– count: Đếm số phần tử trong mảng
NSLog(@"%ld", [Mang2 count]);

– lastObject: Lấy ra phần tử cuối cùng
NSLog(@"%@", [Mang2 lastObject]);

– objectAtIndex: Lấy ra pần tử ở thứ tự chỉ định
NSLog(@"%@", [Mang2 objectAtIndex:0]);
// Thứ tự thứ 0 là phn t đu tiên trong mng.

– objectsAtIndexes: Lấy ra các ký tự ở các vị trí chỉ định
NSArray *MangCon = [Mang2 objectsAtIndexes:[NSIndexSetindexSetWithIndexesInRange:NSMakeRange(13)]];
// Lấy các phần tử từ thứ tự thứ 1 trở đi và lấy 3 phần tử.

– indexOfObject: Tìm vị trí của phần tử trong mảng
NSLog(@"%ld", [Mang2 indexOfObject:@"ky tu"]);

Sau mỗi hàm, các bạn muốn biết cụ thể về các phần tử trong mảng, bạn có thể dùng đoạn code bên dưới để xem.
for (int i = 0; i < [Mang2 count]; i++) {
NSLog(@"%@", [Mang2 objectAtIndex:i]);
}

4. NSMutableArray
Thông qua MutableString, bạn sẽ hiểu ngay MutableArray sẽ tạo ra một biến mà các phần tử trong mảng đó có thể thay đổi (thay thế, xoá, thêm vào, ...).

Cách khai báo:
NSMutableArray *MangDong1;
NSMutableArray *MangDong2 = [[NSMutableArray allocinit];
NSMutableArray *MangDong3 = [NSMutableArray arrayWithObjects:@"So 1"@"So 2"nil];
NSMutableArray *MangDong4 = [NSMutableArray arrayWithArray:Mang2];

Các hàm thao tác với mảng “Mutable”:
Ngoài các hàm được kế thừa từ Array, bạn có thêm các mảng sau để xử lý mảng động:

– addObject: Thêm một phần tử vào cuối mảng
[MangDong3 addObject:@"Love"];

– addObjectsFromArray: Thêm nhiều phần tử từ 1 mảng bên ngoài vào
[MangDong3 addObjectsFromArray:Mang2];

– insertObject:atIndex: Chèn một phần tử vào mảng với vị trí chỉ định
[MangDong3 addObjectsFromArray:Mang2];

– insertObjects:atIndexes: Chèn nhiều phần tử vào mảng với các vị trí chỉ định
[MangDong3 insertObjects:Mang2 atIndexes:[NSIndexSetindexSetWithIndexesInRange:NSMakeRange(32)]];

– removeLastObject: Xoá phần tử cuối cùng
[MangDong3 removeLastObject];

– removeObject: Xoá phần tử được chỉ định
[MangDong3 removeObject:@"Love"];

– removeObjectAtIndex: Xoá phần tử ở vị trí nào đó
[MangDong3 removeObjectAtIndex:3];

– replaceObjectAtIndex:withObject: Thay thế phàn tử ở vị trí chỉ định với một phần tử khác
[MangDong3 replaceObjectAtIndex:1withObject:@"THAY THE"];

– removeAllObjects: Xoá toàn bộ các phần tử trong mảng
[MangDong3 removeAllObjects];

5. Bài tập:

1. Cho chuỗi “Cộng hoà xã hội chủ nghĩa Việt Nam”.
Với 3 hàm bất kỳ, hãy đưa ra 3 cách để lấy chuỗi "xã hội” ra khỏi chuỗi cho trước.

2. Cho mảng có 3 phần tử: 4, 5, 6.
Hãy sắp xếp các số trong mảng theo thứ tự tăng dần.
Và sắp xếp các số trong mảng theo thứ tự giảm dần.


Hai bài tập nhẹ nhàng như vậy. Các bạn giải xong thì đăng lên đây để mọi người cùng theo dõi nhé.
Link Project để các bạn tham khảo: http://www.mediafire.com/download/3ah8w2chuf1tylb/Bai_7.zip
Cảm ơn các bạn quan tâm.
​Nguồn: Bài viết được biên soạn từ tinhte.vn

Tags:

Share:

0 Nhận xét

Categories

. . . 1 [English | DVD] Trọn Bộ DVD Effortless English 3 Ajax 1 Andengine 3 Android 41 Android Studio Cài đặt và phím tắt thông dụng 1 API 1 App Android 1 Applicaiton Chat Multi Client 1 ASP.NET 9 Bài tập lập trình C/C++ có lời giải 1 Bài tập thuật toán C/C++ Và Tuyển tập đề thi olympic 2 Bắt đầu Học Lập Trình 4 Blogger 2 C/C++ 16 C# 21 Câu hỏi phỏng vấn Android 1 Cocos2d-JS 3 Cocos2d-x 3 Code game android 3 Công Cụ Lập Trình 13 Công nghệ 3 Cosos2d 1 CSS 1 Cuộc sống 15 Custom Button trong Android 2 Design Patterns 3 DevExpress 1 Đồ Án 1 DOREMON - NOBITA 2 Dự án 1 Ebook Android 1 English 8 Example Custom Android 1 facebook 1 Fedora 2 Freelancer 1 Game Android 4 Game Android AndEngine 1 Giới thiệu về Ajax 1 Hiệu ứng lắc trong android 1 Hướng dẫn cài đặt Mac OS trên VMware 1 Hướng dẫn download tài liệu miễn phí của website tailieu.vn 1 Hướng dẫn lập trình android 11 Hướng dẫn lập trình Windows Phone 3 Hướng đối tượng 2 Internet được khôi phục 1 Internet of Things 1 iOS 33 Java 9 Kiểm thử phần mềm 1 Kinh nghiệm lập trình 17 Kỹ Năng 1 Lập trình Android FPT Software Training 1 Lập Trình Game Đa Nền Tảng 2 Lập trình game mobile 2 Lập trình iOS FPT Software Training 1 Lập trình mạng 2 LẬP TRÌNH VIÊN CHUYÊN NGHIỆP TRÊN THIẾT BỊ DI ĐỘNG 2 Laptop 1 Libgdx 1 LinQ 3 Linux 6 Load CSDL SQL server ASP.NET 1 Lỗi Eclipse Ctr + Space 1 Mạng Xã Hôi 1 máy thật PC 1 Mbook TIN HỌC A 1 Mbook TIN HỌC B 1 mỗi bài 20 câu 1 NGAN-HANG-DE-THI-TRAC-NGHIEM-ASP.NET 1 Nguyên tắc ngón tay cái trong thiết kế ứng dụng cho điện thoại 1 Nhập môn lập trình C 14 Những câu hỏi phỏng vấn "xương" nhất 1 Những điểm mới kỳ thi THPT quốc gia 2015 1 Object C 1 Phần mềm 3 PHP 2 Phương pháp luyện thi TOEIC 1 Python 2 Review Game 1 SEO 4 Share Acc Fshare 1 Share VIP Miễn phí 1 Sinh viên mới tốt nghiệp – viết gì trong CV 1 Socket Android Client to PC Server C# 2 Socket Chat nhiều Client với server C# 2 Source code 4 Source code game C# 1 Source code game iOS 2 T3H-KHTN 7 Tài Liệu Android 7 Tài Liệu C# 4 Tài liệu hướng dẫn lập trình game với cocos2d-x 1 Tài Liệu iOS 7 Tài Liệu IT 3 Tài Liệu Java 2 Tài liệu Lập trình iOS Tiếng Việt đầy đủ TTTH đại học khoa học tự nhiên 1 Tài Liệu PHP 1 TÀI LIỆU THIẾT KẾ SỐ 1 Tài Liệu Windows Phone 1 Tạo Group Mail Google 1 Tạo hiệu ứng trong lập trình iOS 1 Tạo tên CoCaCoLa 1 Thắc mắc C/C++ 3 THẬP PHÂN sang NHỊ PHÂN không sử dụng MẢNG 1 Thiết kế giao diện Android - App Calculation Android Studio 1 Thiết kế giao diện phần mềm 1 Thuật ngữ cơ bản trong lập trình game AndEngine 1 Thuật toán 5 Thuật toán điều phối FCFS 1 Tiếng Anh 2 Tin Tức 1 Toàn bộ tài liệu ĐTVT 5 năm học 1 Tổng hợp những nơi người lái xe hay bị mắc lỗi tại TPHCM 1 Tutorials Android 2 Tuyến cáp quang AAG đã sửa xong 1 Unity 1 Vim 1 Visual Studyo 2013 1 WEB 1 Website nén JS và CSS tốt nhất 1 Websites Developer 2 Windows 10 Technical Preview 1 Windows Phone 5 WPF 1 XAMARIN 1 Xóa project appcompat_v 1