东莞家居网站建设,wordpress 嵌入html5,中国建筑集团2022招聘,写wordpress一、主要属性介绍
1、自动合成setter、getter方法
1)、接口部分property指定属性 2)、实现部分synthesize
如果
syntheszie widows _windows
这里成员变量名是_windows,而不是windows 2、atomic(nonatomic)
这里主要是指存取方法为原子操作#xff0c;实现线程安全property指定属性 2)、实现部分synthesize
如果
syntheszie widows _windows
这里成员变量名是_windows,而不是windows 2、atomic(nonatomic)
这里主要是指存取方法为原子操作实现线程安全atomic是默认保证线程安全但是会导致性能降低单线程我们一般考虑nonatomic 3、copy
用这个修饰了属性名把副本值设置给类的属性如果赋值的副本发生改变但是类部的属性值不会改变 4、getter、setter
如果(getter ff1, setter ff2)会把默认的getter方法改为ff1, 会把默认setter方法改为ff2,我们调用的时候就是[对象 ff1]、[对象 ff2] 5、readonly、readwirte
readonly是指系统指合成getter方法不合成setter方法
readwirte是默认的都合成 6、retain
使用retain指示定义属性时当莫个对象赋值给属性时该属性原来所引用的对象引用计数减1被赋值对象的引用计数加1
当一个对象的引用计数大于1时该对象不该被回收。 7、strong、weak
strong:指被赋值对象持有强引用不会自动回收
weak:使用弱引用指向被赋值对象该对象可能被回收 二、测试demo
User.h
#ifndef User_h
#define User_h
#import Foundation/Foundation.h
interface User : NSObject
property (nonatomic) NSString *name;
property (nonatomic) NSString *city;
property (nonatomic, copy) NSString *add;
property NSString *pass;
property NSDate *birth;
property NSDate *birth1;
end
#endif /* User_h */ User.m
#import Foundation/Foundation.h
#import User.himplementation User
synthesize name _name;
synthesize pass;
synthesize birth;
-(void) setName:(NSString *)name
{self-_name [NSString stringWithFormat:hello%, name];
}
end
main.m文件
#import UIKit/UIKit.h
#import AppDelegate.h
#import Person.h
#import Apple.h
#import User.h
#import Args.h
#import KVCPerson.hint main(int argc, char * argv[]) {autoreleasepool {User *user [User new];NSMutableString *name [NSMutableString stringWithString:chencaifeng];NSMutableString *city [NSMutableString stringWithString:hunan];NSMutableString *addr [NSMutableString stringWithString:luyunlu];[user setName:name];[user setCity:city];[user setAdd:addr];[user setPass:hello];[user setBirth:[NSDate date]];NSLog(name is %, and pass is %, birth is%, city is%, add is %, [user name], [user pass], [user birth], [user city], [user add]);//我们把setName函数重写了虽然name后面追加了字符串但是后面打印值没有改变[name appendString:chenyu];//由于这里属性没有加copycity后面追加了字符串所以后面打印也变了[city appendString:changsha];//由于这里属性加了copy,由于这个addr后面值追加了所以后面打印不会改变[addr appendString:kanyunlu];NSLog(name is %, and pass is %, birth is%, city is%, add is %, [user name], [user pass], [user birth], [user city], [user add]);//这里是用.操作user.add hello;NSLog(user add is %, user.add); }
} 三、运行结果
name is hellochencaifeng, and pass is hello, birth isFri Jul 6 19:51:04 2018, city ishunan, add is luyunlu
name is hellochencaifeng, and pass is hello, birth isFri Jul 6 19:51:04 2018, city ishunanchangsha, add is luyunlu
user add is hello