为什么 ClassA NSMutableArray arl 计数仍为 0?
有没有办法解决这个问题?
B类
B.h
#import <Foundation/Foundation.h>
#import"A.h"
@interface B :NSObject
-(void) doSomeThing;
B.m
@implementation B
-(void)doSomeThing{
NSMutableArray *Array = [[NSMutableArray alloc] initWithObject"1",@"2",@"3",@"4",nil];
A *a = [[A alloc] init];
[a getValue:Array];
}
A类
啊.h
#import <UKit/UKit.h>
@class B;
@interface A :UIViewController;
@property (strong,nonatomic) NSMutableArray *arl;
-(void) getValueNSMutableArray *)Array;
-(IBAction)buttonid)sender;
@end
上午
@implementation A
@synthesize arl;
-(void) viewDidLoad {
[super viewDidLoad];
B *b = [[B alloc] init];
[b doSomeThing];
}
-(void) getValueNSMutableArray *) Array {
arl = Array;
// arl = [[NSMutableArray alloc]initWithArray:Array];
// [arl addObjectFromArray:Array];
NSLog(@"arl count is :%d",[arl count]); // the log at here is 4
}
-(IBAction) button : (id)sender{
NSLog(@"arl count is :%d",[arl count]);// the log at here is 0
}
Best Answer-推荐答案 strong>
您在 doSomething 中创建了一个新的 A 实例。该实例与连接到您的 button: 方法的实例不同,其 arl 仍未初始化,因此其中没有项目,因此计数为零当 button 被调用时。
关于ios方法参数分配全局变量,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/21843326/
|