与基于Android Studio的安卓开发同步学习
零基础开始
希望自己可以周更
1.Objective-C 拼接字符串
Objective-C doesn’t use ‘+’ operator for concatenation.
This way should work:
NSString *concat = [NSString stringWithFormat: @"%@%@", TextField1.text, TextField2.text];
or
NSString *concat = [TextField1.text stringByAppendingString:TextField2.text];
具体例子:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"登陆成功"
message:[NSString stringWithFormat: @"%@%@", @"你刚才输入的是", message]
preferredStyle:UIAlertControllerStyleAlert];
其中:
NSString *username = [tfUserName text];
NSString *pwd = [tfPWD text];
NSString *message = [NSString stringWithFormat:@"用户名:%@ 密码:%@", username, pwd ];
NSString *concat = [NSString stringWithFormat: @"%@%@", @"你刚才输入的是", message];
2.Objective-C 用两个文件描述一个类
.h 类的声明文件
使用关键字@interface和@end
.m类的实现文件
使用关键字@implementation和@end
Objective-c 是单继承
NSObject是所有类的根类
-#import优于#include 防止重复包含
一般情况下,一旦你使用@property声明了一个属性,编译器就会自动为该属性生成一对存取方法。编译器生成的存取方法遵守以下命名约定:
1)用来访问属性值的方法,getter方法,其名字与属性的名字是相同的;
2)用来设置属性值的方法,setter方法,其名字以“set”开始,其后是属性名,属性名首字母大写;
点语法只是存取方法调用的一个便捷方式。当你使用点语法的时候,属性依然是通过getter或者setter方法来访问或者改变的。
消息: 对象可以发送和接受消息,一个对象通过调用该对象的一个方法发送一个消息给另一个对象。这是objective-C的说法,说白了就是函数调用。
[self presentViewController:alertController animated:YES completion:nil]; //对象给自己发送消息
Objective_C使用id代替void*
atomic 和 nonatomic
nonatomic系统自动生成的getter/setter方法不会进行加锁操作
‘锁仅仅保证了getter和setter存取方法的线程安全’
Xcode篇
AppDelegate.h ,AppDelegate.m:应用程序委托。
ViewController.h,ViewController.m:界面的控制器。
main.storyboard故事板,用来设计和组织APP界面,你也可以使用纯代码或者Xib来设计界面,甚至你可以混合使用三者。
product目录里面就是最终生成的APP
segue 界面跳转
简单的login界面和按钮事件实现:`
在ViewController.h中声明方法与属性:
- (IBAction) userLogin:(id)obj;
- (IBAction) userRegisiter:(id)obj;
- @property (nonatomic, retain) IBOutlet UITextField *tfUserName;
- @property (nonatomic, retain) IBOutlet UITextField *tfPWD;
在ViewController.m中实现:
- (IBAction)userRegisiter:(id)obj {
//用户点击注册按钮
//Objective_C使用id代替void*
NSString *username = [tfUserName text];
NSString *pwd = [tfPWD text];
NSString *message = [NSString stringWithFormat:@"用户名:%@ 密码:%@", username, pwd ];
//create UIAlertController
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"注册成功"
message:[NSString stringWithFormat: @"%@%@", @"你申请的账户是:\n", message]
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"OK Action");
}];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"Cancel Action");
}];
[alertController addAction:okAction]; // A
[alertController addAction:cancelAction]; // B
[self presentViewController:alertController animated:YES completion:nil]; //对象给自己发送消息
//方法的参数传递采用中缀符的形式,利用“:”分割参数名和被传递参数
//YES和NO相当于True和False
//nil相当于null
}
效果: