- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以帮我解决这个问题吗?
我正在构建一个 iPad 应用程序,它有一个 TableViewController,应该显示 1000 到 2000 个字符串之间的内容。我在单例中有那些 NSString。
在单例的 init 方法中,我初始化了一个包含所有数据的数组(不一定是最终的方法 - 只是快速复制和粘贴以进行测试)
我做了一个 self.someArray = [[NSArray alloc]initWithObjects:
,后面跟着大量字符串,然后是 nil。
在模拟器中运行良好 - 但在 iPad 上应用程序启动时访问错误而崩溃
如果我使用方便的方法 [NSArray arrayWithObjects:
- 它工作正常。
我查看了 Instruments,发现该应用程序的整体内存占用量仅为 2.5 MB 左右。
现在我不知道为什么它以一种方式起作用,而以另一种方式不起作用。
编辑:
#import "StaticValueContainer.h"`
static StaticValueContainer* instance = nil;
@implementation StaticValueContainer
@synthesize customerRatingKeys;
+(StaticValueContainer*)sharedInstance
{
if (instance == nil){
instance = [[StaticValueContainer alloc]init];
}
return instance;
}
-(id)init
{
if ( ( self = [super init] ))
{
[self initCustomerRatingKeys];
}
return self;
}
-(void)init customerRatingKeys
{
self.customerRatingKeys = [[NSArray alloc]initWithObjects:
@"string1",
....
@"string1245"
,nil
}
正如我所说:它在设备上崩溃 self.customerRatingKeys = [[NSArray alloc]initWithObjects:
但适用于 *self.customerRatingKeys = [[NSArray arrayWithObjects...`
最佳答案
嗯,它们之间没有太大区别:arrayWithObjects
返回一个自动释放数组,您不需要自己释放该数组(除非您随后保留它) ),并且 initWithObjects
返回一个数组,您必须随后释放它以避免内存泄漏。就性能而言,它们之间没有区别。
我建议,如果您使用 initWithObjects
遇到错误访问错误,但使用 arrayWithObjects
则没有,那么您的代码中可能存在某种内存管理错误。如果您发布代码本身,您可能会得到更准确的响应。
关于iphone - iPad 大型 NSArray - initWithObjects 与 ArrayWithObjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5155097/
我尝试使用 ArrayWithObjects 来创建滚动的运动。我有一个问题,我的动画停止并在数字九处重复:/ 这是我的代码: background.animationImages = [NSArra
NSMutableArray *images = [NSMutableArray arrayWithObjects:[UIImage imageNamed:@"JGirl 01.jpg"],
这是在 Objective-C 中: NSArray *arr = [NSArray arrayWithObjects:kLMEnglish,nil]; 谁能告诉我这行代码的 swift 等价物。 最
arrayWithObjects...是否有使用相同对象“a”或任何对象的快捷方式? NSMutableArray *kkk = [NSMutableArray arrayWithObjects: @
我正在尝试使用这个 iOS 功能 +(实例类型)arrayWithObjects:(id) 我相信我向其中传递了一个数组,但我不知道如何访问该数组,而且我不明白如何使用它。我花了几个小时试图弄明白..
我不明白为什么要写这些代码 icons = [[NSArray alloc] initWithObjects: @"appointment", @"
我是开发新手,我正在尝试创建一个简单的词典应用程序供 iPhone 上的个人使用。对于上下文,我的问题是 this one 的后续问题你们中的一些人昨天很友善地回答了。 是否可以创建一个方法: 读取文
你能解释一下这两行之间的确切区别吗? NSArray *foo = [NSArray arrayWithObjects:@"hai",@"how",@"are",@"you",nil]; NSArra
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Should I prefer to use literal syntax or constructors
有人可以帮我解决这个问题吗? 我正在构建一个 iPad 应用程序,它有一个 TableViewController,应该显示 1000 到 2000 个字符串之间的内容。我在单例中有那些 NSStri
之间的区别是什么? NSMutableArray* p = [[NSMutableArray alloc] initWithObjects:...] 和 NSMutableArray* p = [NS
我知道它标志着一组可变参数的结束,但为什么它不能以不需要 nil 的方式实现呢? 最佳答案 这一切都与 C 调用 ABI 有关。 考虑这些方法: - (id)initWithFormat:(NSStr
在我的应用中,我想在视频模式下打开相机,所以我写了下面的代码 - (BOOL)application:(UIApplication *)application didFinishLaunchingWi
有区别吗 NSArray *myArray = @[objectOne, objectTwo, objectThree]; 和 NSArray *myArray = [NSArray arrayWit
当我在模拟器中测试 Admob 时,它会抛出以下错误 To get test ads on this device, call: request.testDevices = [NSArray arra
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: Why does NSArray arrayWithObjects require a terminating ni
基本的 Cocoa 新手问题在这里……这似乎是 Cocoa 中非常常见的模式。为什么 init 方法和自动释放对象创建方法(例如 [NSArray arrayWithObjects: ...])返回
如果 nil 是用来标记参数结束的,那么我可以使用: [NSArray arrayWithObjects:obj1, obj2, nil, nil, nil]; 第一个 nil 标记数组结束,之后的两
在 Objective-C 上,我可以这样做: UIAlertView *av = [[UIAlertView alloc] initWith ... otherButtonTitles:@"butt
我是一名优秀的程序员,十分优秀!