OStack程序员社区-中国程序员成长平台

标题: ios方法参数分配全局变量 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 18:56
标题: ios方法参数分配全局变量

为什么 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-推荐答案


您在 doSomething 中创建了一个新的 A 实例。该实例与连接到您的 button: 方法的实例不同,其 arl 仍未初始化,因此其中没有项目,因此计数为零当 button 被调用时。

关于ios方法参数分配全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21843326/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4