java tool:
Keytool是Oracle JDK的一部分。Keytool很少用于开发环境,然而如果你正在开发企业级应用时,这将是你最好的密钥和证书管理工具。
Jad用于反编译Java类。你可以用Jad以纯文本的形式命令和阅读代码。
Notepad++是用于编辑xml、脚本以及记笔记的最佳工具。这个工具的最好部分在于,你在Notepad++上打开的任何一个文档,在关闭后都会有一个残留文档,它有助于在意外删除重要文档,还有办法恢复。Notepad++是一款非常有特色的编辑器,是开源软件,可以免费使用。
-----------上面还是一些java的使用工具--------------
-----------由于公司需要接入ios的appstore的storekit的内置游戏支付功能------------所以我又逗比的花了几天时间去学习OC
OCstudy
//NSLog(@"我有一只小毛驴!"); NS代表 next software公司遗留下来的
//而@字符表示后面的字符串是NSString类型的字符串
//BOOL值为YES,NO,而不是ture,false,8位二进制
//
int _age; //@interface中变量默认是@public
int _height; //只能在当前类和子类的对象方法中访问
@pritate
int _weight; //只能在当前类的对象方法中才能直接访问
@package
NSString *_name;//只能在当前框架内使用
//
NSString *birthday;//@implementation中变量默认是@private
1.在Xcode工程里 Build Phase —>Link Binary With Libraries —>添加类库StoreKit.framework
然后在游戏里面调用storekit里面的接口
@property用法:
@property编辑
本词条缺少概述、信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
目录
1
简介
2
格式
3
参数类型详解
▪ getter分析
▪ setter分析
1
简介
编辑
Objective-C语言关键词,与@synthesize配对使用。xcode4.5以及以后的版本,@synthesize可以省略
下面以 Person 类为例:
在. h 文件中:
@interface Person : NSObject
{
NSString * _name;
NSString * _sex;
NSInteger _age;
}
@property NSString * name;
@property NSString * sex;
@property NSInteger age;
表示声明了三个属性: name,sex,age, 默认生成3个对应的 setter 和 getter 方法
在. m 文件中:
@implementation Person
@synthesize name = _name;
@synthesize sex = _sex;
@synthesize age = _age;
@end
表示实现3个 setter 和 getter 方法,其中 name = _name 表示说在 getter 和 setter 方法中操作的实力变量是_name,如果省略了_name,_age,_sex, 那么会在. h 文件中生成同名的实例变量 name,sex,age(注意:这里并没有下划线),此时生成的 setter 和 getter 方法所操作的实例变量是 name,sex,age, 所以_name,_sex,_age 并没有被操作.
在 ios5.0后,@synthesize也可以省略不写,此时在. h 文件中只写@ property 即可,编译器会自动生成相应的实例变量,实例变量的名字是属性名称前加下划线.
2
格式
编辑
声明property的语法为:
@property (参数1,参数2) 类型 名字;
如:
@property(nonatomic,retain) UIWindow *window;
其中参数主要分为三类:
读写属性: (readwrite/readonly)
setter语意:(assign/retain/copy)
原子性: (atomicity/nonatomic)
各参数意义如下:
readwrite
产生setter\getter方法
readonly
只产生简单的getter,没有setter。
assign
默认类型,setter方法直接赋值,而不进行retain操作
retain
setter方法对参数进行release旧值,再retain新值。
copy
setter方法进行Copy操作,与retain一样
nonatomic
禁止多线程,变量保护,提高性能
3
参数类型详解
编辑
参数中比较复杂的是retain和copy,具体分析如下:
getter分析
1、 @property(nonatomic,retain)test* thetest;
@property(nonatomic ,copy)test* thetest;
等效代码:
-(test*)thetest
{
return thetest;
}
2、@property(retain)test* thetest;
@property(copy)test* thetest;
等效代码:
-(test*)thetest
{
[thetest retain];
return [thetest autorelease];
}
setter分析
1、
@property(nonatomic,retain)test* thetest;
@property(retain)test* thetest;
等效于:
-(void)setThetest:(test *)newThetest {
if (thetest!= newThetest) {
[thetestrelease];
thetest= [newThetest retain];
}
}
2、@property(nonatomic,copy)test* thetest;
@property(copy)test* thetest;
等效于:
-(void)setThetest:(test *)newThetest {
if (thetest!= newThetest) {
[thetestrelease];
thetest= [newThetest copy];
}
}