Objective-C——基础知识1(标签、+-、NString)

B站学习视频:
https://www.bilibili.com/video/BV14v411J7e7/?spm_id_from=333.337.search-card.all.click&vd_source=d33b44674c517c8b7928e8d3ac316b37

类别
Foundation
文件操作、属性列表
OC的内存管理:
1、内存管理常见问题
2、引用计数
3、内存管理黄金法则
4、MRC和ARC(属性关键字weak/strong)
5、自动释放池
6、Foundation常用类的内存管理误区

常用设计模式介绍
1、单例
2、KVC&KVO
3、观察者模式

一个简单的类实现:

#import <Foundation/Foundation.h>

@interface Student : NSObject
-(void) SayHello;
-(void) SayHello3:(char*) myname :(int)age; //多个变量以:分隔,而不是逗号分隔,而且:前面最好以空格分开,否则还有警告。
@end

@implementation Student

-(void) SayHello
{
 NSLog(@"sayhello");
}

-(void)SayHello3:(char*) myname :(int) age //多个变量以:分隔,而不是逗号分隔,而且:前面最好以空格分开,否则还有警告。
{
 NSLog(@"%s sayhello %d", myname, age);
}

@end

int main(int argc, const char * argv[]) {
 @autoreleasepool {
  Student *s = [[Student alloc]init];
  [s SayHello];
  [s SayHello3:"xiaoming":12];
 }
 return 0;
}

注意:iOS警告’xxx’ used as the name of the previous parameter rather than as part of the selector
https://www.jianshu.com/p/1cd233a1f560

多为传入多个变量没有空格引起,在第二变量的冒号前面加个空格既可以解决。

#import <Foundation/Foundation.h>

@interface Student : NSObject
-(void) SayHello;
-(void) SayHello3:(NSString*) name :(NSInteger) age; //多个变量以:分隔,而不是逗号分隔,而且:前面最好以空格分开,否则还有警告。
@end

@implementation Student

-(void) SayHello
{
 NSLog(@"sayhello");
}

-(void)SayHello3:(NSString*) name :(NSInteger) age //多个变量以:分隔,而不是逗号分隔,而且:前面最好以空格分开,否则还有警告。
{
  NSLog(@"%@ sayhello %ld", name, age);
}

@end

int main(int argc, const char * argv[]) {
 @autoreleasepool {
  Student *s = [[Student alloc]init];
  [s SayHello];
   [s SayHello3:@"xiaoming" :12];
 }
 return 0;
}

知识点1:标签的使用

#import <Foundation/Foundation.h>

@interface Student : NSObject
@property (nonatomic,strong) NSString* name;
@property (nonatomic, assign) NSInteger age;
@property (nonatomic,strong) NSString* gender;
-(void) setName:(NSString*)name setAge:(NSInteger) age setGender:(NSString*)gender;
@end

@implementation Student

-(void) setName:(NSString*)name setAge:(NSInteger) age setGender:(NSString*)gender
{
  _name = name;
  _age = age;
  _gender = gender;
}

@end

int main(int argc, const char * argv[]) {
 @autoreleasepool {
   Student *s = [[Student alloc]init];
   [s setName:@"xiaoming" setAge:12 setGender:@"boy"];
   NSLog(@"%@ %ld %@", s.name, s.age, s.gender);
 }
 return 0;
}

-(void) setName:(NSString*)name setAge:(NSInteger) age setGender:(NSString*)gender;这里的setName、setAge、setGender为标签。
_name = name;注意这里的_name是下划线开头,和property中的name是对应的,这是object c默认潜规则。

知识点2:object c中的静态方法和成员方法的调用方式

#import <Foundation/Foundation.h>

@interface Student : NSObject
+(void) SayHello;
-(void) Nihao;
@end

@implementation Student
+(void)SayHello
{
  NSLog(@"hello");
}

-(void)Nihao
{
  NSLog(@"nihao");
}

@end

int main(int argc, const char * argv[]) {
 @autoreleasepool {
   [Student SayHello];
   Student *s = [[Student alloc] init];
   [s Nihao];
 }
 return 0;
}

知识点3:NSString类

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
 @autoreleasepool {
   //常量字符串
   NSString *str1 = @"nihao";   
   NSString *str2 = [[NSString alloc] initWithString:@"hello"];
   NSString *str3 = [NSString stringWithString:str2];

   //可变字符串
   NSMutableString *str4 = [[NSMutableString alloc] init];
   [str4 appendString:@"world"];
   [str4 appendString:@"world2"];

   NSLog(@"%@ %@ %@ %@", str1, str2, str3, str4);
 }
 return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值