创建数组变量有三种模式:
NSArray *array = @[@0, @1];
NSArray *array = [NSArray arrayWithObjects:@0, @1, nil];
NSArray *array = [[NSArray alloc] initWithObjects:@0, @1, nil];
当我使用第二种模式创建时,varialbe"array"将被抛给autoreleasepool; 当我使用第三个时,var的retainCount将为1但不会被抛给autoreleasepool; 我想知道第一种模式与第二种模式或第三种模式具有相同的效果;
我对NSManagedObjectContext的类型有一些疑问.让我们看一下苹果关于NSConfinementConcurrencyType的文档:
限制(NSConfinementConcurrencyType)
为了向后兼容,这是默认值.您保证除了您创建它之外的任何线程都不会使用上下文.通常,为了使行为明确,我们鼓励您使用其他类型之一.
如果托管对象上下文的父存储是持久性存储协调器,则只能使用此并发类型.
我无法理解为什么这种类型只能由父存储是持久存储协调器的对象上下文使用.例如,我创建一个NSManagedObjectContext使用这种类型,并将它的父存储设置为另一个上下文,是否会产生一些错误.
1,请看以下代码:
const UIView *view = [[UIView alloc] init];
view.tag = 2;
Run Code Online (Sandbox Code Playgroud)
2,在我看来,"const"意味着变量无法改变.
3,所以我认为我无法改变"查看"指向的对象的内容,但我可以更改view.tag,我不知道为什么.