我有一个使用 ARC 的 NSArray 属性的类,没有什么花哨的......
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
property(nonatomic, strong) (NSArray *) myArray;
@end
#import "MyClass.h"
@implementation MyClass
@synthesize myArray = _myArray;
@end
如果尝试使用另一个类中的方法来尝试设置该数组,则如果仅传递该数组,则它不会设置它;但是,如果课程通过,它确实设置了,我不确定为什么会这样......
尝试这两种方式的代码如下...
MyClass *myClass = [[MyClass alloc] init];
[self setArrayByPassingArray:myClass.myArray];
NSLog (@"%@", myClass.myArray)
//result is null
[self setArrayByPassingClass:myClass];
NSLog (@"%@", myClass.myArray)
//result is test, test2...
-(void)setArrayByPassingArray:(NSArray *)arrayToSet {
arrrayToSet = [[NSArray alloc] initWithObjects: @"test", @"test2", nil];
}
-(void)setArrayByPassingClass:(MyClass *)classWithArrayToSet {
classWithArrayToSet.myArray = = [[NSArray alloc] initWithObjects: @"test", @"test2", nil];
}
我尝试了其他一些仅使用字符串的方法并且字符串没有更改,所以我不确定如果包含它们的类被传递,为什么它们会被更改......