什么时候用assign、什么时候用retain和copy呢?
推荐做法是NSString用copy
delegate用assign(且一定要用assign),
非objc数据类型,比如int,float等基本数据类型用assign(默认就是assign),
而其它objc类型,比如NSArray,NSDate用retain。
参考来源:http://www.cnblogs.com/andyque/archive/2011/08/03/2125728.html
赋值的时候同时会执行一些任务。
比如:
NSTimer *timer = [NSTimer sheduledTimerWithTimeInterval: 5.0 targer: self selector:@selector(outPutLogs) userInfo: nil repeat: YES];
在给timer赋值的同时,会注册执行重复调用outPutLogs 方法。
再比如:
__block UIBackgroundTaskIdentifier taskId;
taskId = [applacation beginBackgrondTaskWithExpirationHandler: ^{
[applacation endBackgroundTask: taskId];
}];
在用户出发home键之后,应用需要更多的时间处理数据,在这里赋值给taskId的同时,系统会根据用户注册了beginBackgrondTaskWithExpirationHandler: 方法而延长后台时间。