gpt4 book ai didi

objective-c - Cocoa Touch NSArray 初始化无法正常工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:25:53 32 4
gpt4 key购买 nike

我有几个在我的 -viewDidLoad 方法中初始化的 ivar NSArray。一个包含字符串,一个包含 IBOutlets。但是,当我初始化时,数组中的所有对象都超出范围,内存地址为 0x0(根据 Xcode 调试器)。但是,当我有一个包含相同对象的本地 NSArray 时,它工作正常。初始化 ivar NSString 或 NSDictionary 都可以正常工作。

代码:

//.h file
#import <UIKit/UIKit.h>
@interface myViewController : UIViewController
{
NSArray *myArray;
}
@end

//.m file
#import "myViewController.h"
@implementation myViewController
- (void)viewDidLoad
{
[super viewDidLoad];
myArray = [[NSArray alloc] initWithObjects:@"aString", @"another string", nil];
NSLog(@"myArray equals: %@.", myArray);
}
@end

当我尝试使用数组时,出现 EXC_BAD_ACCESS 运行时错误。这是一个 Xcode 错误,还是我遗漏了一些关于 NSArray 的信息?更新:我正在使用 ARC。在我关闭 ARC 并进行干净构建后,我不再遇到这个问题。这是 ARC 中的错误吗?

我不知道问题出在哪里,但我切换到 Xcode 的稳定版本 (4.0.2) 并且完全没有问题。感谢大家的帮助!

最佳答案

问这样的问题时,请务必注意您正在使用 ARC。

您打算如何使用数组(显示代码)?某些版本的 ARC 中存在一个已知错误(无法在 iOS 端讨论,但相同的错误存在于 ARC 的 Lion 版本中),在 ARC 下快速枚举集合可能会导致崩溃。

关于objective-c - Cocoa Touch NSArray 初始化无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7058569/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com