IOS之學(xué)習(xí)筆記三(簡(jiǎn)單對(duì)象和static和單例)
1、Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
NSString *_name;
int _age;
}
-(void)setName:(NSString *) name andAge:(int) age;
-(void)say:(NSString *)content;
-(NSString *)info;
+(void)foo;
@end
Person.m
#import "Person.h"
@implementation Persion
{
int test;
}
-(void)say:(NSString *)content
{
NSLog(@"%@", content);
}
-(NSString *)info
{
[self test];
return [NSString stringWithFormat:@"名字:%d, 年齡%d,", _name, _age];
}
+(void)foo
{
NSLog(@"通過類名調(diào)用");
}
-(void)test
{
NSLog(@"this is a test method");
}
@end
-(void)setName:(NSString *) _name andAge:(int) _age
{
//記得這里是self->_name不是self._name,一定要注意。
self->_name = _name;
self->_age = _age;
}
Person *person = [[Person alloc] init];
[person say:@"hello"];
[person setName:@"chenyu" andAge:26];
NSString *info = [person info];
NSLog(@"info is %@", info);
[Persion foo];
2、id類型可以代表所有對(duì)象的類型,可以任何類的對(duì)象賦值給id類型變量
id p = [[Person alloc] init];
[p say:@"hello"];
3、oc沒有類變量,但是可以通過內(nèi)部全局變量來模擬類變量
oc也提供了static關(guān)鍵字,但是static不能用于修飾成員變量,只能修飾局部變量,全局變量和函數(shù),static修飾局部變量表示將該局部變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū),static修飾全局變量用于限制全局變量只能在當(dāng)前源文件中訪問,static修飾函數(shù)用于限制函數(shù)只能在當(dāng)前文件中調(diào)用
模擬類變量
User.h文件如下
#import <Foundation/Foundation.h>
@interface User : NSObject
+(NSString *)nation;
+(void)setNation:(NSString *)newNation;
@end
User.m文件如下
#import "User.h"
@implement User
static NSString *nation = nil;
+(NSString *)nation
{
return nation;
}
+(void)setNation:(NSString *)newNation
{
nation = newNation;
}
@end
int main(int argc, char* argc[])
{
@autoreleasepool {
[User setNation:@"chenyu"];
NSLog(@"nation is %@", [User nation]);
}
}
4、單例模式
Singleton.h文件如下
#import <Foundation/Foundation.h>
@interface Singleton : NSObject
+(id)instance;
@end
Singleton.m文件如下
@implemnet Singleton
static id instance = nil;
+(id)instance
{
if (instance)
{
instance = [[super malloc] init];
}
return instance;
}
@end
int main(int argc, char* argc[])
{
@autoreleasepool {
NSLog(@"%d", [Singleton instance] == [Singleton instance]);
}
}
作者:chen.yu
深信服三年半工作經(jīng)驗(yàn),目前就職游戲廠商,希望能和大家交流和學(xué)習(xí),
微信公眾號(hào):編程入門到禿頭 或掃描下面二維碼
零基礎(chǔ)入門進(jìn)階人工智能(鏈接)