“非primefaces”属性是什么意思?

这个代码中的“非primefaces”是什么意思?

@property(nonatomic, retain) UITextField *theUsersName; 

primefaces和非primefaces有什么区别?

谢谢

看看苹果文件 。

基本上,如果你说nonatomic ,并且使用@synthesize生成访问器,那么如果多个线程试图立刻改变/读取属性,就会发生不良现象。 你可以得到部分写入的值或过度释放/保留的对象,这很容易导致崩溃。 (尽pipe这可能比primefaces访问器快很多)。

如果你使用默认的(这是atomic ;以前没有关键字,但现在有 ),那么@synthesize d方法使用对象级锁来确保对单个属性的多个读/写操作被序列化。 正如苹果文档指出的, 这并不意味着整个对象是线程安全的 ,而是单独的属性读/写。

当然,如果你实现自己的访问器而不是使用@synthesize ,我认为这些声明什么都不做,除了expression你的意图是否是以线程安全的方式实现的。

阅读了这么多的文章和StackOverflowpost,并做了演示应用程序来检查variables属性属性,我决定把所有的属性信息放在一起

  1. primefaces//默认
  2. 非primefaces
  3. 强=保留/ /默认
  4. 弱= unsafe_unretained
  5. 保留
  6. 分配//默认
  7. unsafe_unretained
  8. 复制
  9. 只读
  10. 读写//默认

所以下面是详细的文章链接,你可以find上面提到的所有属性,这一定会帮助你。 非常感谢所有在这里给出最佳答案的人!

iOS中的variables属性或修饰符

  1. primefaces
    • primefaces意味着只有一个线程访问variables(静态types)。
    • primefaces是线程安全的。
    • 但是performance慢。
    • primefaces是默认行为。
    • 在非垃圾收集环境(即使用保留/释放/自动释放)中的primefaces访问器将使用锁来确保另一个线程不会干扰正确的设置/获取值。
    • 它实际上不是一个关键字。

例如:

 @property (retain) NSString *name; @synthesize name; 
  1. 非primefaces
    • 非primefaces意味着multithreading访问variables(dynamictypes)。
    • 非primefaces线程不安全。
    • 但是它的性能很快。
    • 非primefaces不是默认行为; 我们需要在属性中添加非primefaces关键字。
    • 当两个不同的进程(线程)同时访问同一个variables时,可能会导致意外的行为。

例:

 @property (nonatomic, retain) NSString *name; @synthesize name; 

除了已经提到的线程安全性以外,非primefaces属性比primefaces访问器更快。 这不是你通常需要担心的事情,但要牢记在心。 核心数据生成的属性是非primefaces部分出于这个原因。

在multithreading程序中,primefaces操作不能被部分地中断,而非primefaces操作可以。

因此,如果你有一个非primefaces的关键操作,你不想中断,你应该使用互斥体(或类似的东西)。

如果你指定“primefaces”,生成的访问函数有一些额外的代码来防止同时更新。

通常primefaces意味着写入/读取属性作为单个操作发生。 Atomic_operation

你可以通过阅读下面的文章来获得这些东西的处理。

线程解释非primefaces的目的

非primefaces – 不是线程安全的

primefaces – 线程安全 – 这是默认的属性属性。

“primefaces”意味着对属性的访问是线程安全的,而“非primefaces”是相反的。当你在Objective-C中声明一个属性时,默认情况下这个属性是primefaces的,所以合成的访问器提供了强健的属性访问在一个multithreading的环境中,也就是说,getter或set通过setter返回的值总是被完全检索或者设置,而不pipe其他的线程是否同时执行,但是如果你声明属性是非primefaces的

 @property (nonatomic, retain) NSString *myString; 

那么这意味着一个对象属性的合成访问器只是直接返回值。 非primefaces属性的影响取决于环境。 默认情况下,合成访问器是primefaces的。 所以非primefaces比primefaces快得多。

一个是multithreading。 一个没有