-
07-08-2013, 06:47 PM #1Junior Member
- Ngày tham gia
- Dec 2014
- Bài viết
- 0
7: Các Đối tượng cơ bản trong Objective-C
7: Các Đối tượng cơ bản trong Objective-CTrướ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:
<span style="font-size: 11px">NSString *Chuoi1;</span>
<span style="font-size: 11px">// Khai báo biến có tên là Chuoi1</span>
<span style="font-size: 11px">NSString *Chuoi2 = [NSString stringWithFormat:@"Day la chuoi 1"];</span>
<span style="font-size: 11px">// 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</span>
<span style="font-size: 11px">NSString *Chuoi3 = [NSString stringWithString:Chuoi2];</span>
<span style="font-size: 11px">// Khai báo biến có tên là Chuoi3 và gán giá trị của Chuoi2 cho Chuoi3 vừa tạo</span>
Các hàm xử lý chuỗi đối với NSString:
– length: lấy độ dài của chuỗi
<span style="font-size: 11px">NSLog(@"%ld", [Chuoi2 length]);</span>
– characterAtIndex: Lấy ra kỹ tự ở vị trí chỉ định
<span style="font-size: 11px">NSLog<span style="color: #000000">(@"%c", [Chuoi2 characterAtIndex:5]);</span></span>
– componentsSeparatedByString: Cắt chuỗi thành nhiều phần
<span style="font-size: 11px">NSLog<span style="color: #000000">(@"%@", [Chuoi2 componentsSeparatedByString:@"la"]);</span></span>
– substringFromIndex: Lấy ra chuỗi con tính từ vị trí chỉ định đến cuối chuỗi
<span style="font-size: 11px">NSLog<span style="color: #000000">(@"%@", [Chuoi2 substringFromIndex:3]);</span></span>
– substringToIndex: Lấy ra chuỗi con tính từ vị trí chỉ định đến đầu chuỗi
<span style="font-size: 11px">NSLog<span style="color: #000000">(@"%@", [Chuoi2 substringToIndex:3]);</span></span>
– 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
<span style="font-size: 11px">NSLog<span style="color: #000000">(@"%lu", [Chuoi2 rangeOfString:@"chuoi"].location);</span></span>
– stringByReplacingOccurrencesOfString:withString: Thay thế một chuỗi bằng một chuỗi mới trong chuỗi cho trước
<span style="font-size: 11px">NSLog<span style="color: #000000">(@"%@", [Chuoi2 stringByReplacingOccurrencesOfString:@"1"withString:@"da bi thay the"]);</span></span>
– compare: So sánh hai chuỗi với nhau
<span style="font-size: 11px"><span style="color: #3d1d81">NSLog(@"%ld", [Chuoi2 compare:@"Day la chuoi 3"]);</span></span>
<span style="font-size: 11px"><span style="color: #008400">// 0 nghĩa là 2 chuỗi giống nhau, -1 nghĩa là hai chuỗi khác nhau</span></span>
– intValue: Lấy số nguyên ra từ chuỗi.
<span style="font-size: 11px">NSLog(@"%i", [Chuoi2 intValue]);</span>
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:
<span style="font-size: 11px">NSMutableString<span style="color: #000000"> *ChuoiDong1;</span></span>
<span style="font-size: 11px">NSMutableString *ChuoiDong2 = [[NSMutableString alloc] init];</span>
<span style="font-size: 11px">NSMutableString *ChuoiDong3 = [NSMutableString stringWithString:Chuoi2];</span>
<span style="font-size: 11px">// Các bạn cũng khai báo hoàn toàn giống với String tĩnh.</span>
<span style="font-size: 11px">// 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ự (@"")</span>
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
<span style="font-size: 11px">[ChuoiDong3 appendFormat:@" - abc - "];</span>
<span style="font-size: 11px">NSLog(@"%@", ChuoiDong3);</span>
– appendString: Ghép thêm một chuỗi bất kỳ vào cuối chuỗi đã cho
<span style="font-size: 11px">[ChuoiDong3 appendString:Chuoi2];</span>
<span style="font-size: 11px">NSLog(@"%@", ChuoiDong3);</span>
– deleteCharactersInRange: Xoá ký tự bất kỳ trong chuỗi với vị trí được chỉ định
<span style="font-size: 11px"><span style="color: #000000">[ChuoiDong3 deleteCharactersInRange:NSMakeRange(2, 3)];</span></span>
<span style="font-size: 11px">NSLog(@"%@", ChuoiDong3);</span>
– insertString:atIndex: Chèn thêm chuỗi vào vị trí được chỉ định
<span style="font-size: 11px"><span style="color: #000000">[ChuoiDong3 insertString:@"INSERT"atIndex:3];</span></span>
<span style="font-size: 11px">NSLog(@"%@", ChuoiDong3);</span>
– replaceCharactersInRange:withString: Thay thế ký tự ở vị trí chỉ định với một chuỗi bất kỳ
<span style="font-size: 11px"><span style="color: #000000">[ChuoiDong3 replaceCharactersInRange:NSMakeRange(1, 2) withString:@"-REPLACE-"];</span></span>
<span style="font-size: 11px">NSLog(@"%@", ChuoiDong3);</span>
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:
<span style="font-size: 11px">NSArray *Mang1;</span>
<span style="font-size: 11px">NSArray *Mang2 = [NSArray arrayWithObjects:@"ky tu", @"ky tu 2", @"chuoi", nil];</span>
<span style="font-family: 'Menlo'">NSArray<span style="font-size: 11px"> *Mang3 = [NSArray arrayWithObjects:@"abc", @"def",nil];</span></span>
<span style="font-size: 11px">NSArray *Mang4 = [NSArray arrayWithArray:Mang2];</span>
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
<span style="font-size: 11px"><span style="color: #000000">[Mang2 containsObject:@"ky tu"] ? NSLog(@"Co") : NSLog(@"khong");</span></span>
– count: Đếm số phần tử trong mảng
<span style="font-size: 11px">NSLog(@"%ld", [Mang2 count]);</span>
– lastObject: Lấy ra phần tử cuối cùng
<span style="font-size: 11px">NSLog<span style="color: #000000">(@"%@", [Mang2 lastObject]);</span></span>
– objectAtIndex: Lấy ra pần tử ở thứ tự chỉ định
<span style="font-size: 11px">NSLog<span style="color: #000000">(@"%@", [Mang2 objectAtIndex:0]);</span></span>
<span style="font-size: 11px">// Thứ tự thứ 0 là ph<span style="font-family: 'Monaco'">ần t<span style="font-family: 'Monaco'">ử đ<span style="font-family: 'Monaco'">ầu tiên trong mảng.</span></span></span></span>
– objectsAtIndexes: Lấy ra các ký tự ở các vị trí chỉ định
<span style="font-size: 11px"><span style="color: #703daa">NSArray *MangCon = [Mang2 objectsAtIndexes:[NSIndexSetindexSetWithIndexesInRange:NSMakeRange(1, 3)]];</span></span>
<span style="font-size: 11px">// Lấy các phần tử từ thứ tự thứ 1 trở đi và lấy 3 phần tử.</span>
– indexOfObject: Tìm vị trí của phần tử trong mảng
<span style="font-size: 11px">NSLog<span style="color: #000000">(@"%ld", [Mang2 indexOfObject:@"ky tu"]);</span></span>
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.
<span style="font-size: 11px">for (int i = 0; i < [Mang2 count]; i++) {</span>
<span style="font-size: 11px">NSLog(@"%@", [Mang2 objectAtIndex:i]);</span>
<span style="font-size: 11px">}</span>
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:
<span style="font-size: 11px">NSMutableArray<span style="color: #000000"> *MangDong1;</span></span>
<span style="font-size: 11px">NSMutableArray *MangDong2 = [[NSMutableArray alloc] init];</span>
<span style="font-size: 11px">NSMutableArray *MangDong3 = [NSMutableArray arrayWithObjects:@"So 1", @"So 2", nil];</span>
<span style="font-size: 11px">NSMutableArray *MangDong4 = [NSMutableArray arrayWithArray:Mang2];</span>
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
<span style="font-size: 11px">[MangDong3 addObject:@"Love"];</span>
– addObjectsFromArray: Thêm nhiều phần tử từ 1 mảng bên ngoài vào
<span style="font-size: 11px"><span style="color: #000000">[MangDong3 addObjectsFromArray:Mang2];</span></span>
– insertObject:atIndex: Chèn một phần tử vào mảng với vị trí chỉ định
<span style="font-size: 11px"><span style="color: #000000">[MangDong3 addObjectsFromArray:Mang2];</span></span>
– insertObjects:atIndexes: Chèn nhiều phần tử vào mảng với các vị trí chỉ định
<span style="font-size: 11px"><span style="color: #000000">[MangDong3 insertObjects:Mang2 atIndexes:[NSIndexSetindexSetWithIndexesInRange:NSMakeRange(3, 2)]];</span></span>
– removeLastObject: Xoá phần tử cuối cùng
<span style="font-size: 11px"><span style="color: #000000">[MangDong3 removeLastObject];</span></span>
– removeObject: Xoá phần tử được chỉ định
<span style="font-size: 11px">[MangDong3 removeObject:@"Love"];</span>
– removeObjectAtIndex: Xoá phần tử ở vị trí nào đó
<span style="font-size: 11px"><span style="color: #000000">[MangDong3 removeObjectAtIndex:3];</span></span>
– replaceObjectAtIndex:withObject: Thay thế phàn tử ở vị trí chỉ định với một phần tử khác
<span style="font-size: 11px"><span style="color: #000000">[MangDong3 replaceObjectAtIndex:1withObject:@"THAY THE"];</span></span>
– removeAllObjects: Xoá toàn bộ các phần tử trong mảng
<span style="font-size: 11px"><span style="color: #000000">[MangDong3 removeAllObjects];</span></span>
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/3a...tylb/Bai_7.zip
Cảm ơn các bạn quan tâm.View more random threads:
- Xin Key Xilisoft iphone Magic Platinum 4.2.1 (MAC version)
- Adobe acrobat X full ..... new...
- Find Duplicate Files 2008 - Phần mềm tìm kiếm các file bị trùng
- AutoDesk AutoCAD 2015 cho Mac OS X Yosemite Full Keygen
- Người ta treo chữ Phúc lộn ngược vì sao?
- Anh em xem theme Tiger và Leopard thế này đã đẹp chưa:D
- Lập công thức toán trong Adobe Indesign
- mail for mac
- Xin phần mềm copy đĩa DVD có khoá
- Xin phần mềm Wallpapers HD 1.7 có key
-
07-10-2013, 04:36 AM #2Junior Member
- Ngày tham gia
- Dec 2014
- Bài viết
- 0
Vẫn đang hóng tới bài tạo server bằng pHp [IMG]styles/default/xenforo/clear.png[/IMG]
-
07-12-2013, 04:01 AM #3Junior Member
- Ngày tham gia
- Dec 2014
- Bài viết
- 0
[IMG]styles/default/xenforo/clear.png[/IMG] chờ bài mới
-
07-12-2013, 04:20 PM #4Junior Member
- Ngày tham gia
- Dec 2014
- Bài viết
- 0
Gửi bởi Dũng Dâm Dê
Gửi bởi allstreet
-
07-12-2013, 04:24 PM #5Junior Member
- Ngày tham gia
- Dec 2014
- Bài viết
- 0
Gửi bởi vi_tieu_bao
[IMG]styles/default/xenforo/clear.png[/IMG] hôm rồi post bài mà hok thấy iThanh phản hồi j cả, nên tự mần
-
07-13-2013, 07:31 AM #6Junior Member
- Ngày tham gia
- Dec 2014
- Bài viết
- 1
làm lun mấy cách iThanh coi có cách nào làm chưa đúng hông nha.
Thanks
Mã:#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *ChuoiA = [NSString stringWithFormat:@"Cong Hoa Xa Hoi Chu Nghia Viet Nam."]; //Cach 1: NSString *ChuoiB = [ChuoiA substringToIndex:15]; NSLog(@"%@", [ChuoiB substringFromIndex:9]); //Cach 2: NSArray *Mang1 = [ChuoiA componentsSeparatedByString:@" "]; NSLog(@"%@ %@",[Mang1 objectAtIndex:2],[Mang1 objectAtIndex:3]); //Cach 3: NSLog(@"%@",[Mang1 objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(2, 2)]]); //Cach 4: int x = 9; int y = 15; for (int a = x; a < y; a++) { NSLog(@"%c", [ChuoiA characterAtIndex:a]); } } return 0; }
-
09-07-2013, 06:14 PM #7Junior Member
- Ngày tham gia
- Dec 2014
- Bài viết
- 0
bạn ơi, cho mình hỏi tại sao đoạn code này khi chạy lại báo lỗi thế?
Mã:NSArray *daySo = [NSArray arrayWithObjects:@"a", 2, 5.6, nil]; NSLog(@"%@", [daySo objectAtIndex:0]);
Mã:NSArray *daySo = [NSArray arrayWithObjects: 2, 3,4, nil];
-
09-07-2013, 06:40 PM #8Junior Member
- Ngày tham gia
- Dec 2014
- Bài viết
- 0
Gửi bởi vah1280
Bạn có thể khai báo bằng NSNumber
-
09-17-2013, 06:05 PM #9Junior Member
- Ngày tham gia
- Dec 2014
- Bài viết
- 0
iThanh ơi cái lỗi output cứ xuất ra (lldb) làm sao để sửa đc. Trong khi mình tạo một project mới cũng với đoạn code căn bản về NSArray thì xuất ra đc hết các phần tử, còn trong cái project cũ hiện hành mặc dù đã xoá đi hết các dòng code thực hành khác, giữ nguyên những j mình ghi giống trong prj mới mà nó vẫn cứ ra output (lldb).
Các Chủ đề tương tự
-
1. Nhập môn Xcode và Objective-C
Bởi donghonam trong diễn đàn Khu Vực Máy TínhTrả lời: 36Bài viết cuối: 05-03-2015, 03:39 PM -
2. Cấu trúc của một chương trình Objective-C
Bởi namlth trong diễn đàn Khu Vực Máy TínhTrả lời: 13Bài viết cuối: 03-13-2015, 07:03 PM
Căn hộ cao cấp dự án Napoleon Castle 1 Nha Trang chủ đầu tư Cattiger Việt Nam hiện đại sầm uất cạnh trung tâm kết hợp thiên nhiên. bán căn hộ Napoleon Castle 1 Nha Trang hiện đại sầm uất đón ánh...
Dự án chung cư Napoleon Castle 1...