Kết quả 1 đến 9 của 9
  1. #1
    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-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:



    <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.

  2. #2
    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]

  3. #3
    Ngày tham gia
    Dec 2014
    Bài viết
    0
    [IMG]styles/default/xenforo/clear.png[/IMG] chờ bài mới

  4. #4
    Ngày tham gia
    Dec 2014
    Bài viết
    0
    Trích dẫn Gửi bởi Dũng Dâm Dê
    Vẫn đang hóng tới bài tạo server bằng pHp [IMG]styles/default/xenforo/clear.png[/IMG]



    Trích dẫn Gửi bởi allstreet
    [IMG]styles/default/xenforo/clear.png[/IMG] chờ bài mới
    sao Dũng với allstreet ko làm post bài tập lên cho mọi người tham khảo với

  5. #5
    Ngày tham gia
    Dec 2014
    Bài viết
    0
    Trích dẫn Gửi bởi vi_tieu_bao
    sao Dũng với allstreet ko làm post bài tập lên cho mọi người tham khảo với


    [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

  6. #6
    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;
    }

  7. #7
    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]);
    còn 1 vấn đề nữa là khi mình khai báo thế này cũng bị lỗi là sao?



    Mã:
     NSArray *daySo = [NSArray arrayWithObjects: 2, 3,4, nil];
    thanks [IMG]styles/default/xenforo/clear.png[/IMG]

  8. #8
    Ngày tham gia
    Dec 2014
    Bài viết
    0
    Trích dẫn Gửi bởi vah1280
    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]);
    còn 1 vấn đề nữa là khi mình khai báo thế này cũng bị lỗi là sao?



    Mã:
     NSArray *daySo = [NSArray arrayWithObjects: 2, 3,4, nil];
    thanks [IMG]styles/default/xenforo/clear.png[/IMG]
    Các phần tử trong mảng phải là đối tượng (Object) nhé bạn.



    Bạn có thể khai báo bằng NSNumber

  9. #9
    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. 1. Nhập môn Xcode và Objective-C
    Bởi donghonam trong diễn đàn Khu Vực Máy Tính
    Trả lời: 36
    Bài viết cuối: 05-03-2015, 03:39 PM
  2. 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ính
    Trả lời: 13
    Bài viết cuối: 03-13-2015, 07:03 PM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •