标签: dealloc

将实例ID打印到NSLog?

在类的dealloc方法中,如何为要解除分配的实例打印ID(或其他一些唯一标识符)?

- (void)dealloc {
    NSLog(@"_deallocing: ??");
    [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?我只是想在控制台中获得更多反馈,以帮助学习.

非常感谢-gary-

memory objective-c nslog dealloc

14
推荐指数
2
解决办法
2万
查看次数

强制显式删除Java对象

我正在研究处理大量非常密集流量的Java服务器.服务器接受来自客户端的数据包(通常是几兆字节)并将它们转发给其他客户端.服务器从不显式存储任何传入/传出数据包.然而,服务器不断遇到OutOfMemoryException异常.

我添加System.gc()到服务器的消息传递组件中,希望释放内存.另外,我将JVM的堆大小设置为千兆字节.我仍然得到了许多例外.

所以我的问题是:如何确保兆字节消息无限期排队(尽管不需要)?有没有办法让我在这些对象上调用"delete"来保证它们不使用我的堆空间?

        try
        {
           while (true)
            {
               int r = generator.nextInt(100);//generate a random number between 0 and 100
                Object o =readFromServer.readObject();
                sum++;
                // if the random number is larger than the drop rate, send the object to client, else
                //it will be dropped
                if (r > dropRate)
                {
                    writeToClient.writeObject(o);
                    writeToClient.flush();
                    numOfSend++;
                    System.out.printf("No. %d send\n",sum);
                }//if

            }//while
        }//try
Run Code Online (Sandbox Code Playgroud)

java garbage-collection dealloc

14
推荐指数
3
解决办法
2万
查看次数

谁调用dealloc方法和什么时候在Objective C?

在Objective C中创建自定义类时,该dealloc方法何时以及如何调用?这是我必须在课堂上以某种方式实现的吗?

objective-c dealloc

14
推荐指数
2
解决办法
8100
查看次数

EXC_Breakpoint滚动视图崩溃

这是我自从更新iOS 7应用程序以来一直遇到的一个新问题.每次我在设备或模拟器上启动应用程序时,都会收到此错误代码

RecipeDetailViewController scrollViewDidScroll:]:发送到解除分配的实例0x15746c40的消息,它崩溃了.

我启用了NSZombie,这就是它给我的代码.在它给出一个exc_bad_access代码之前.

这是我的ScrollViewDidSCroll代码

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{


    // Depending on how far the user scrolled, set the new offset.
    // Divide by a hundred so we have a sane value. You could adjust this
    // for different effects.
    // The larger you number divide by, the slower the shadow will change

    float shadowOffset = (scrollView.contentOffset.y/1);

    // Make sure that the offset doesn't exceed 3 or drop below 0.5
    shadowOffset = MIN(MAX(shadowOffset, 0), 0.6);

    //Ensure that the shadow radius …
Run Code Online (Sandbox Code Playgroud)

uiscrollview dealloc

14
推荐指数
2
解决办法
3056
查看次数

正确[super dealloc]

dealloc方法中语句的顺序是否重要?是否[super dealloc]需要处于方法的顶部?有关系吗?

也在例如viewDidLoad.应该[super viewDidLoad]在方法的顶部?

iphone dealloc

13
推荐指数
2
解决办法
5995
查看次数

目标C - 你在哪里解除全局静态变量?

或者,+(void)初始化的反义词是什么?

这是我的情况:

我有一个类Unit,其 - (id)initWithName:函数从全局NSDictionary中获取数据,该数据是懒惰创建的,在Unit.m文件中定义为:

static NSMutableDictionary*unitLibrary = nil;

我在哪里打电话给[unitLibrary release]?

static objective-c dealloc

11
推荐指数
1
解决办法
3498
查看次数

Objective-C中dealloc的首选编码风格是什么?

我知道关于编码风格的讨论往往以灾难和无尽的火焰战结束,但这不是我想达到的目标.在过去十年中,我主要dealloc在Objective-C中看到了两种不同的编码方式.第一个也是最常见的一个是放在dealloc文件的底部.这也是Apple在Xcode默认模板中使用的样式.这背后的逻辑似乎dealloc是在对象的结尾接近时调用的,因此文件的结尾似乎是一个很好的比喻.

另一方面,有几个人倾向于dealloc直接置于@synthesize指令之下.在我看来,这有两个主要的缺点:

  1. 文件的顶部变得杂乱无聊的代码.
  2. 在课堂上找到必要部分比较困难,你必须向下滚动.

我认为的巨大优势是您可以在属性和相应的release消息之间建立直接的可视连接.

另一件事是弄乱已经发布的变量.虽然我不认为这是必要的,特别是在整个变量在dealloc结束后被解构的对象上下文中,我倾向于也只是变量.我习惯于在函数范围内对变量执行此操作,因此我只是符合我的编码风格.

这就是我的大多数课程的样子:

@implementation Bar

@synthesize foo;

- (void)dealloc
{
  [foo release], foo = nil;

  [super dealloc];
}

// Initializers and other methods…
Run Code Online (Sandbox Code Playgroud)

我已经提到了一些优点和缺点.对于这个话题你有什么看法?什么是你在使用的编码风格dealloc为什么?我还忘了提到其他优点和缺点吗?

我不想在这里开始一场火焰战争.我只是想知道你使用什么样的风格,如果你有特定的理由,或者这对你最终无关紧要.

cocoa coding-style objective-c dealloc

11
推荐指数
4
解决办法
1919
查看次数

正确释放NSOperationQueue

我想知道如果仍有一些操作正在运行,那么解除一个ivar NSOperationQueue的正确方法是什么,这通常会在用户突然退出应用程序时发生.在一些例子中,我看到使用了waitUntilAllOperationsAreFinished,如下所示:


- (void)dealloc {
    [_queue cancelAllOperations];
    [_queue waitUntilAllOperationsAreFinished];
    [_queue release];
    ...

然而,许多人建议避免这样做,因为它会挂起运行循环.那么发布的正确方法是_queue什么?如果我不等待操作完成并继续发布,会发生什么?

iphone dealloc nsoperation nsoperationqueue

11
推荐指数
1
解决办法
2333
查看次数

iOS中的Dealloc方法并将对象设置为nil

我有一个非常基本的问题.在我看到的一些例子中,对象只是在dealloc方法中释放.在其他情况下,对象被释放然后设置为nil.是否有一个原因?释放有利后设定为零?

memory-management objective-c dealloc ios

10
推荐指数
1
解决办法
2万
查看次数

iOS:如何在ARC中销毁Singleton?我是不是该?

我有一个单例类,它会累积数据,直到数据写入我的数据库(如果你想知道为什么我用这种方式实现,请看这里).保存数据后,我想破坏单例.我怎么能在ARC中这样做?或者我是偏执狂,我是否需要销毁它?

*您可能会说这是问题的副本,但此处接受的答案并不具体,无法提供帮助.它说"你可以声明你明确调用的方法/函数." 这个代码可能是什么样的?如果我无法在方法之外释放对象,我怎么可能在方法中将其拉出来?它还说" 最简单的方法是让一个静态C++类保存它,然后在它的析构函数中释放它." 我不懂C++,但是 - 你真的可以在你的应用程序代码中加入C++类吗?

我的单身实现如下:

+(NHCFamilyStatus *)familyStatus
{
  static dispatch_once_t pred;
  static NHCFamilyStatus *familyStatusSharedObject=nil;

    dispatch_once(&pred, ^
    {
        familyStatusSharedObject = [[NHCFamilyStatus alloc] init];
    });

  return familyStatusSharedObject;
}
Run Code Online (Sandbox Code Playgroud)

singleton dealloc ios automatic-ref-counting

10
推荐指数
1
解决办法
7701
查看次数