Ios 如何在不调用alloc-NSArray、NSString的情况下分配内存

Ios 如何在不调用alloc-NSArray、NSString的情况下分配内存,ios,iphone,objective-c,Ios,Iphone,Objective C,我有两个viewcontroller: viewcontroller1-具有属性NSArrayarray1并且在viewDidLoad中我正在分配 self.array1=@[@“a”、“b”、“c”、“d”] 问题1: 如果不编码alloc,该array1如何分配内存和存储值 问题2: 现在我有了viewcontroller2-Has属性NSArrayarray2 使用prepareforsque方法,我将array1值赋值给array2 [[segue destinationViewCont

我有两个viewcontroller:

viewcontroller1
-具有属性
NSArray
array1
并且在
viewDidLoad
中我正在分配
self.array1=@[@“a”、“b”、“c”、“d”]

问题1: 如果不编码alloc,该
array1
如何分配内存和存储值

问题2: 现在我有了
viewcontroller2
-Has属性
NSArray
array2

使用
prepareforsque
方法,我将
array1
值赋值给
array2

[[segue destinationViewController] setArray2:self.array1];
viewcontroller2
-
viewDidLoad
中,如果我记录
array2
我将获得值。从哪里获得
array2
内存分配

  • 它被称为语法糖,编译器分配所需的内存
  • array2只是一个指针。您可以为其分配阵列1的已分配内存的内存地址
  • 你可以找一些好的例子

  • 它被称为语法糖,编译器分配所需的内存
  • array2只是一个指针。您可以为其分配阵列1的已分配内存的内存地址

  • 你可以找一些很好的例子

    谁说
    @[@“a”、@“b”、@“c”、@“d”]
    不调用
    alloc
    ?谢谢你的回复。明白了!谁说
    @[@“a”、@“b”、@“c”、@“d”]
    不叫
    alloc
    ?谢谢你的回复。明白了!嗨,迪玛,谢谢你的回复。问题1——明白了!问题2-我对数组1的理解参考计数增加到2。另一件事,当我解除锁定/释放array1时,array2将没有任何价值。请更正。当您释放引用计数时,它将减少到1,因此对象仍在内存中。只有当你再次释放它时,它才会被删除谢谢你的时间:)这里有疑问-好的,现在数组1的RC是2。当我做dellac时,RC变成0而不是1。请纠正我。回答得好。只是想补充一点,在本例中的“语法糖”可以被称为NSArray文本。这是一种分配和初始化NSArray实例的简捷方法。嗨,迪玛,谢谢你的回复。问题1——明白了!问题2-我对数组1的理解参考计数增加到2。另一件事,当我解除锁定/释放array1时,array2将没有任何价值。请更正。当您释放引用计数时,它将减少到1,因此对象仍在内存中。只有当你再次释放它时,它才会被删除谢谢你的时间:)这里有疑问-好的,现在数组1的RC是2。当我做dellac时,RC变成0而不是1。请纠正我。回答得好。只是想补充一点,在本例中的“语法糖”可以被称为NSArray文本。这是一种分配和初始化NSArray实例的简捷方法。