零基础Objective-c与基于Xcode的ios开发 学习笔记 No.1 创建登陆界面

与基于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
        
}

效果:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_56336619/article/details/115033495
今日推荐