Làm việc với Foundation trong lập trình iOS

(ZmikiSoft.com) – Làm việc với Foundation trong lập trình iOS.

Khi lập trình ứng dụng iOS, chúng ta sẽ làm việc với rất nhiều framework ( khái niệm này do Apple đặt tên). Foundation framework cung cấp các dịch vụ cơ bản nhất cho các ứng dụng. Bao gồm các kiểu dữ liệu cơ bản nhất như String, Number…, các khái niệm này được hiểu qua tên là Value Objects.

Value Objects có thể được phát biểu như sau: mỗi value object là một đối tượng được đóng gói trong một kiểu giá trị chính ( theo kiểu dữ liệu của ngôn ngữ lập trình C ) và cung cấp các dịch vụ liên quan đến kiểu giá trị đó. Chúng ta biết đến value object như là NSString – NSMutableString, NSData – NSMutableData, NSDate, NSNumber, NSValue.

Cùng tìm hiểu một số chi tiết:

  • NSString: đây là class cung cấp đối tượng kiểu string, hỗ trợ các ký tự mã hóa ( encode ), lưu trữ các chuỗi ký tự.
    • Đoạn code ví dụ về NSString

 

// Create the string “My String” plus carriage return.
NSString *myString = @”My String\n”;
// Create the formatted string “1 String”.
NSString *anotherString = [NSString stringWithFormat:@”%d %@”, 1, @”String”];
// Create an Objective-C string from a C string.
NSString *fromCString = [NSString stringWithCString:”A C string”
encoding:NSUTF8StringEncoding];

 

  • Numbers  
    • Objective-C cung cấp một cách ngắn gọn để tạo đối tượng NSNumber, để khai báo đơn giản ta chỉ cần thêm ký tự @ vào trước và sau đó là giá trị được gán cho biến.

NSNumber *myIntValue = @32;
NSNumber *myDoubleValue = @3.22346432;

NSNumber *myFloatValue = @3.2F

  • Collection Objects
    • Đây là một khái niệm cho các kiểu dữ liệu, gồm các class: NSArray, NSSet, NSDictionary. Những  Class này được dùng để quản lý nhóm các đối tượng, vì vậy bất ký thành phần nào bạn muốn thêm vào một collection, thì thành phần đó phải là một thể hiện của một Class trong Objective-C. Nếu sử dụng các kiểu dữ liệu bất biến như kiểu số thì bạn phải ép kiểu, hoặc tạo theo các kiểu Class như NSNumber, NSValue. Collection class sử dụng strong reference để giữ tham chiếu đến các đối tượng nó nắm giữ.
    • Arrays: một array (NSArray) được dùng để chứa một danh sách các đối tượng theo một thứ tự được sắp xếp. Các đối tượng bên trong Array có thể khác kiểu dữ liệu, Array cung cấp một số phương thức rất giá trị để làm việc như: containObject, ObjectAtIndex, count, sort…  Bên dưới là mô tả hình tượng hóa và đoạn code khởi tạo NSArray.

      id firstObject = @”someString”;
      id secondObject = nil;
      id thirdObject = @”anotherString”;
      NSArray *someArray =
      [NSArray arrayWithObjects:firstObject, secondObject, thirdObject, nil];

    • Array Mutability (NSMutableArray): NSArray là một class bất biến (immutable) nghĩa là chúng ta không thể thêm một đối tượng khác vào khi nó đã khởi tạo và thành lập, để có thể thao tác add, remove, replace.. các đối tượng bên trong chúng ta dùng NSMutableArray. Đây là class có các đặc tính của NSArray nhưng có thêm nhiều tính năng giúp ta có thể linh hoạt thay đổi, chỉnh sửa, bổ sung…
    • Sets: (NSSet) cũng giống như Array, nhưng Sets chỉ lưu trữ nhóm đối tượng không theo thứ tự. Bởi vì Sets không quan tâm đến việc sắp xếp thứ tự các đối tượng bên trong nên việc thực thi nhanh hơn so với Array. Vì NSSet cũng là class bất biến nên nội dung của nó cũng phải được chỉ định khi khởi tạo.
      • NSSet *simpleSet = [NSSet setWithObjects:@”Hello, World!”, @42, aValue, anObject, nil];

    • Dictionaries: Dạng dữ liệu lưu trữ theo kiểu key-value, minh họa và code ví dụ khởi tạo Dictionary như bên dưới

       NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
      someObject, @”anObject”,
      @”Hello, World!”, @”helloString”,
      @42, @”magicNumber”,
      someValue, @”aValue”,
      nil];

    • NSMutableDictionary: cũng giống với Array, Dictionary cũng bất biến, do đó nêu bạn muốn sử dụng các phương thức remvoe hoặc add thì bạn phải sử dụng một subclass của nó là NSMutableDictionary
  • Trong các bài tiếp theo chúng ta sẽ tiếp tục tìm hiểu thêm về các khía cạnh khác của lập trình mobile.

 
Khóa học lập trình Android
Khóa học lập trình Java
Khóa học lập trình iOS
Khóa học lập trình Objective-C/Swift