Ngôn ngữ được sử dụng trong phát triển iOS là mục tiêu C. Đây là ngôn ngữ hướng đối tượng và do đó, sẽ dễ dàng đối với những người đã có nền tảng về ngôn ngữ lập trình hướng đối tượng.
Giao diện và triển khai
Trong Objective C, tệp nơi khai báo lớp được thực hiện được gọi là tệp giao diện và tệp nơi lớp được định nghĩa được gọi là tệp thực thi .
Một tệp giao diện đơn giản MyClass.h sẽ giống như sau:
@interface MyClass:NSObject {
// class variable declared here
}
// class properties declared here
// class methods and instance methods declared here
@end
Tệp triển khai MyClass.m sẽ như sau:
@implementation MyClass
// class methods defined here
@end
Tạo đối tượng
Việc tạo đối tượng được thực hiện như sau:
MyClass *objectName = [[MyClass alloc]init] ;
Phương pháp
Phương thức được khai báo trong Objective C như sau:
-(returnType)methodName:(typeName) variable1 :(typeName)variable2;
Một ví dụ đã được biểu diễn ở dưới.
-(void)calculateAreaForRectangleWithLength:(CGfloat)length
andBreadth:(CGfloat)breadth;
Bạn có thể tự hỏi chuỗi andBreadth dùng để làm gì; thực ra đó là một chuỗi tùy chọn, giúp chúng ta đọc và hiểu phương thức một cách dễ dàng, đặc biệt là tại thời điểm gọi. Để gọi phương thức này trong cùng một lớp, chúng ta sử dụng câu lệnh sau:
[self calculateAreaForRectangleWithLength:30 andBreadth:20];
Như đã nói ở trên, việc sử dụng andBreadth giúp chúng ta hiểu rằng độ rộng là 20. Self được sử dụng để chỉ định rằng đó là một phương thức của lớp.
Phương pháp lớp học
Các phương thức của lớp có thể được truy cập trực tiếp mà không cần tạo các đối tượng cho lớp. Chúng không có bất kỳ biến và đối tượng nào được liên kết với nó. Một ví dụ đã được biểu diễn ở dưới.
+(void)simpleClassMethod;
Nó có thể được truy cập bằng cách sử dụng tên lớp (giả sử tên lớp là MyClass) như sau:
[MyClass simpleClassMethod];
Phương pháp phiên bản
Phương thức instance chỉ có thể được truy cập sau khi tạo một đối tượng cho lớp. Bộ nhớ được cấp cho các biến cá thể. Một ví dụ về phương thức được hiển thị bên dưới.
-(void)simpleInstanceMethod;
Nó có thể được truy cập sau khi tạo một đối tượng cho lớp như sau:
MyClass *objectName = [[MyClass alloc]init] ;
[objectName simpleInstanceMethod];
Các kiểu dữ liệu quan trọng trong Mục tiêu C
Sr.No. | Loại dữ liệu |
1 | NSString Nó được sử dụng để biểu diễn một chuỗi. |
2 | CGfloat Nó được sử dụng để biểu diễn một giá trị dấu phẩy động (float bình thường cũng được phép nhưng tốt hơn nên sử dụng CGfloat). |
3 | NSInteger Nó được sử dụng để biểu diễn số nguyên. |
4 | BOOL Nó được sử dụng để đại diện cho Boolean (CÓ hoặc KHÔNG đều được phép sử dụng các loại BOOL). |
In Nhật ký
NSLog – được sử dụng để in một câu lệnh. Nó sẽ được in trong nhật ký thiết bị và bảng điều khiển gỡ lỗi ở các chế độ phát hành và gỡ lỗi tương ứng. Ví dụ,
NSlog(@"");
Cấu trúc điều khiển
Hầu hết các cấu trúc điều khiển đều giống như trong C và C ++, ngoại trừ một số bổ sung như for trong câu lệnh.
Tính chất
Đối với một lớp bên ngoài để truy cập lớp, các thuộc tính biến được sử dụng. Ví dụ,
@property(nonatomic , strong) NSString *myString;
Truy cập thuộc tính
Bạn có thể sử dụng toán tử dấu chấm để truy cập thuộc tính. Để truy cập thuộc tính trên, chúng ta thực hiện như sau.
self.myStrin
g = @"Test";
Bạn cũng có thể sử dụng phương pháp thiết lập như sau:
[self setMyString:@"Test"];
Thể loại
Các danh mục được sử dụng để thêm các phương thức vào các lớp hiện có. Bằng cách này, chúng ta có thể thêm phương thức vào các lớp mà chúng ta không có các tệp triển khai, nơi lớp thực được định nghĩa. Một danh mục mẫu cho lớp của chúng tôi như sau:
@interface MyClass(customAdditions)
- (void)sampleCategoryMethod;
@end
@implementation MyClass(categoryAdditions)
-(void)sampleCategoryMethod {
NSLog(@"Just a test category");
Mảng
NSMutableArray và NSArray là các lớp mảng được sử dụng trong mục tiêu C. Như tên cho thấy, lớp trước là có thể thay đổi và lớp sau là bất biến. Một ví dụ đã được biểu diễn ở dưới.
NSMutableArray *aMutableArray = [[NSMutableArray alloc]init];
[anArray addObject:@"firstobject"];
NSArray *aImmutableArray = [[NSArray alloc]
initWithObjects:@"firstObject",nil];
Từ điển
NSMutableDictionary và NSDictionary là các lớp từ điển được sử dụng trong mục tiêu C. Như tên cho thấy, lớp trước là có thể thay đổi và lớp sau là bất biến. Một ví dụ đã được biểu diễn ở dưới.
NSMutableDictionary *aMutableDictionary = [[NSMutableArray alloc]init];
[aMutableDictionary setObject:@"firstobject" forKey:@"aKey"];
NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects:
@"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];
iOS – Ứng dụng iPhone đầu tiên
Tạo ứng dụng đầu tiên
Bây giờ chúng ta sẽ tạo một ứng dụng xem một lần đơn giản (một ứng dụng trống) sẽ chạy trên trình mô phỏng iOS.
Các bước thực hiện như sau.Bước 1 – Mở Xcode và chọn Tạo một dự án Xcode mới .
Bước 2 – Chọn Ứng dụng Xem một lần
Bước 3 – Nhập tên sản phẩm, tức là tên ứng dụng, tên tổ chức và sau đó là số nhận dạng công ty.
Bước 4 – Đảm bảo rằng Sử dụng Đếm Tham chiếu Tự động được chọn để tự động giải phóng các tài nguyên được cấp phát khi nó vượt ra khỏi phạm vi. Bấm tiếp.
Bước 5 – Chọn thư mục cho dự án và chọn tạo.
Bước 6 – Bạn sẽ thấy một màn hình như sau:
Trong màn hình trên, bạn sẽ có thể chọn các hướng được hỗ trợ, cài đặt xây dựng và phát hành. Có một mục tiêu triển khai hiện trường, phiên bản thiết bị mà chúng tôi muốn hỗ trợ, hãy chọn 4.3, đây là mục tiêu triển khai tối thiểu được phép hiện tại. Hiện tại, chúng không bắt buộc và hãy tập trung vào việc chạy ứng dụng.
Bước 7 – Bây giờ, chọn trình mô phỏng iPhone trong menu thả xuống gần nút Chạy và chọn chạy.
Bước 8 – Đó là nó; bạn đã chạy thành công ứng dụng đầu tiên của mình. Bạn sẽ nhận được một đầu ra như sau:
Bây giờ chúng ta hãy thay đổi màu nền, chỉ để bắt đầu với trình tạo giao diện. Chọn ViewController.xib. Chọn tùy chọn nền ở phía bên phải, thay đổi màu sắc và chạy.
Trong dự án trên, theo mặc định, mục tiêu triển khai sẽ được đặt thành iOS 6.0 và bố cục tự động sẽ được bật. Để đảm bảo rằng ứng dụng của chúng tôi chạy trên các thiết bị chạy trên iOS 4.3 trở đi, chúng tôi đã sửa đổi mục tiêu triển khai khi bắt đầu tạo ứng dụng này, nhưng chúng tôi không tắt bố cục tự động. Để tắt bố cục tự động, chúng ta cần bỏ chọn hộp kiểm tự động bố cục trong trình kiểm tra tệp của từng nib, tức là các tệp xib. Các phần khác nhau của IDE dự án Xcode được đưa ra trong hình sau (Lịch sự: Tài liệu dành cho người dùng Apple Xcode 4).
Trình kiểm tra tệp được tìm thấy trong thanh bộ chọn trình kiểm tra như được hiển thị ở trên và bố cục tự động có thể được bỏ chọn ở đó. Bố cục tự động có thể được sử dụng khi bạn chỉ muốn nhắm mục tiêu các thiết bị iOS 6. Ngoài ra, bạn sẽ có thể sử dụng nhiều tính năng mới như sổ tiết kiệm nếu bạn nâng mục tiêu triển khai lên iOS 6. Hiện tại, hãy sử dụng iOS 4.3 làm mục tiêu triển khai.
Mã của ứng dụng iOS đầu tiên
Bạn sẽ tìm thấy năm tệp khác nhau sẽ được tạo cho ứng dụng của bạn. Chúng được liệt kê như sau:
- AppDelegate.h
- AppDelegate.m
- ViewController.h
- ViewController.m
- ViewController.xib
AppDelegate.h
// Header File that provides all UI related items.
#import <UIKit/UIKit.h>
// Forward declaration (Used when class will be defined /imported in future)
@class ViewController;
// Interface for Appdelegate
@interface AppDelegate : UIResponder <UIApplicationDelegate>
// Property window
@property (strong, nonatomic) UIWindow *window;
// Property Viewcontroller
@property (strong, nonatomic) ViewController *viewController;
//this marks end of interface
@end
Các mục quan trọng trong mã –
- AppDelegate kế thừa từ UIResponder xử lý các sự kiện iOS.
- Triển khai các phương thức ủy quyền của UIApplicationDelegate, cung cấp các sự kiện ứng dụng chính như khởi chạy xong, sắp kết thúc, v.v.
- Đối tượng UIWindow để quản lý và điều phối các chế độ xem khác nhau trên màn hình thiết bị iOS. Nó giống như chế độ xem cơ sở mà tất cả các chế độ xem khác được tải lên. Nói chung chỉ có một cửa sổ cho một ứng dụng.
- UIViewController để xử lý luồng màn hình.
AppDelegate.m
// Imports the class Appdelegate's interface
import "AppDelegate.h"
// Imports the viewcontroller to be loaded
#import "ViewController.h"
// Class definition starts here
@implementation AppDelegate
// Method to intimate us that the application launched successfully
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc]
initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
/* Use this method to release shared resources, save user data,
invalidate timers, and store enough application state information
to restore your application to its current state in case it is
terminated later. If your application supports background
execution, this method is called instead of
applicationWillTerminate: when the user quits.*/
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
/* Called as part of the transition from the background to the
inactive state. Here you can undo many of the changes made on
entering the background.*/
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
/* Restart any tasks that were paused (or not yet started) while
the application was inactive. If the application was previously in
the background, optionally refresh the user interface.*/
}
- (void)applicationWillTerminate:(UIApplication *)application {
/* Called when the application is about to terminate. Save data if
appropriate. See also applicationDidEnterBackground:. */
}
- (void)applicationWillTerminate:(UIApplication *)application {
/* Called when the application is about to terminate. Save data if appropriate.
See also applicationDidEnterBackground:. */
}
@end
Các mục quan trọng trong mã –
- Các đại biểu của ứng dụng UIA được định nghĩa ở đây. Tất cả các phương thức được định nghĩa ở trên là đại biểu ứng dụng giao diện người dùng và không chứa phương thức do người dùng xác định.
- Đối tượng UIWindow được cấp phát để giữ ứng dụng được cấp phát.
- UIViewController được cấp phát làm bộ điều khiển chế độ xem ban đầu của cửa sổ.
- Để hiển thị cửa sổ, phương thức makeKeyAndVosystem được gọi.
ViewController.h
Các mục quan trọng trong mã -
• Các đại biểu của ứng dụng UIA được định nghĩa ở đây. Tất cả các phương thức được định nghĩa ở trên là đại biểu ứng dụng giao diện người dùng và không chứa phương thức do người dùng xác định.
• Đối tượng UIWindow được cấp phát để giữ ứng dụng được cấp phát.
• UIViewController được cấp phát làm bộ điều khiển chế độ xem ban đầu của cửa sổ.
• Để hiển thị cửa sổ, phương thức makeKeyAndVosystem được gọi.
ViewController.h
#import <UIKit/UIKit.h>
// Interface for class ViewController
@interface ViewController : UIViewController
@end
Các mục quan trọng trong mã –
- Lớp ViewController kế thừa UIViewController, lớp này cung cấp mô hình quản lý chế độ xem cơ bản cho các ứng dụng iOS.
ViewController.m
#import "ViewController.h"
// Category, an extension of ViewController class
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Các mục quan trọng trong mã –
- Hai phương thức được thực hiện ở đây được định nghĩa trong lớp cơ sở UIViewController.
- Thực hiện thiết lập ban đầu trong viewDidLoad được gọi sau khi chế độ xem tải.
Phương thức didReceiveMemoryWarning được gọi trong trường hợp cảnh báo bộ nhớ.