iOS学习——第二天
来源:互联网 发布:足彩数据分析软件app 编辑:程序博客网 时间:2024/06/07 15:23
第一部分+-
+方法[类名 函数名]
-方法[实例 函数名]
//Test.h
#import <Foundation/Foundation.h>
@interface Test : NSObject
-(void)test:(int)a;//“-”代表实例方法(instance)
+(void)test2:(int)b;//"+"代表静态方法
@end
//Test.m
#import "Test.h"
@implementation Test
-(void)test:(int)a
{
NSLog(@"-");
}
+(void)test2:(int)b
{
NSLog(@"+");
}
@end
//AppDelegate.h
#import "AppDelegate.h"
#import "Test.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[Test test2:2];//静态方法可直接调用
Test *t=[[Test alloc]init];//实例方法需要先实例化
[t test:2];
return YES;
}
Output:
第二部分 方法重载
//Parent.h
#import<Foundation/Foundation.h>
@ineterface Parent :NSObject
-(void)fun:(int)num;
@property (retain,nonatomic) NSMutableString *a;//retain相当于人工retain加1
@end
//Parent.m
#import"Parent.h"
@implementation Parent
-(void)fun:(int)num
{
NSLog(@"I'm parent");
}
@end
//Child.h
#import"Parent.h"
@interface Child :Parent
-(void)fun:(int)num;
@end
//Child.m
#import"Child.h"
@implementation Child
-(void)fun:(int)num
{
NSLog(@"I'm child");
}
@end
//AppDelegate.m
#import"AppDelegate.h"
#import"Parent.h"
#import"Child.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
Parent *p1=[[Child alloc]init];
[p1 fun:3];
@end
//这个.m并不完整,只纪录了改动的部分。.h没有改动
output:
第三部分 引用计数(non-ARC手工释放)
方法:点工程名-PROJECT/TARGETS-搜“automatic”-Object-c Automatic Reference Co…./Objective-C Automatic Reference Co….的选项选为“NO”
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
Parent *p1=[[Child alloc]init];
[p1 fun:3];
NSString *tests=@"tests";
p1.a=[NSMutableStringstringWithFormat:@"%@",tests];
int count=[p1.aretainCount];//获得引用计数的值,当retainCount==0时,释放内存
NSLog(@"%d",count);
[p1.aretain];//调用retain后,引用计数加1
count=[p1.aretainCount];
NSLog(@"%d",count);
[p1.arelease];//调用release后,引用计数减1
count=[p1.aretainCount];
NSLog(@"%d",count);
@end
output:
有“retain”时@property (retain,nonatomic) NSMutableString *a;//retain相当于人工retain加1
无“retain”时@property (nonatomic) NSMutableString *a;
//如果把NSMutableString改为NSString,或者赋一个常量,则引用计数(retainCount)始终为-1或很大的数(与机器有关),这是因为程序运行时分为代码区和数据区等,在数据区里有常量区,只有当应用程序退出时才释放
- iOS学习——第二天
- iOS学习——第二天练习题
- IOS 学习第二天
- 学习IOS第二天
- iOS学习日记(第二天)
- IOS学习第二篇 ——引用计数器内存管理
- IOS第二十六天——Picker
- IOS第二天——Objective-C语言基础学习
- 疯狂iOS讲义(下)——多线程第二天学习笔记
- iOS-学习笔记-UI-第二天
- iOS第二天注意和学习重点
- ios(swift语言)学习第二天
- IOS学习第二课
- python学习——第二天
- 0706——JAVASE第二天学习
- java学习总结——第二天
- MySQL学习第二天——理论知识
- spring4学习日记——第二天
- SpriteKit学习笔记(六)关于SpriteKit与cocos2d
- 关于mysql函数GROUP_CONCAT的使用
- does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-l
- UVa400 Unix ls
- hdu 1028 Ignatius and the Princess III 母函数
- iOS学习——第二天
- 响应式web布局笔记(1)
- 三问计时器
- 内核符号表详解——如何在module中利用内核符号
- 为Git设置代理
- Python中内建变量的使用
- SQLServer删除log文件和清空日志的方案
- 立刻拥有传智播客成都java培训中心视频
- SegY地震体数据可视化分析工具 开发笔记 5 数据切割和抽取