相关疑难解决方法(0)

Objective-C中的自动引用计数不会阻止或最小化哪种泄漏?

在Mac和iOS平台上,内存泄漏通常是由未发布的指针引起的.传统上,检查您的分配,副本和保留以确保每个都有相应的发布消息始终是至关重要的.

Xcode 4.2附带的工具链引入了最新版本的LLVM编译器的自动引用计数(ARC),通过让编译器为您的内存管理来完全解决这个问题.这非常酷,它确实减少了大量不必要的,平凡的开发时间,并防止了很多粗心的内存泄漏,这些泄漏很容易通过适当的保留/释放平衡来修复.当您为Mac和iOS应用程序启用ARC时,甚至需要以不同方式管理自动释放池(因为您不应再分配自己的NSAutoreleasePools).

但是,其他的内存泄漏它不能阻止我仍然要注意?

作为奖励,Mac OS X和iOS上的ARC与Mac OS X上的垃圾收集有什么区别?

macos memory-leaks objective-c ios automatic-ref-counting

234
推荐指数
3
解决办法
4万
查看次数

Objective-C自动引用计数和垃圾收集有什么区别?

通过Xcode 4.2中引入的新自动引用计数(ARC),我们不再需要在Objective-C中手动管理保留/释放.

这看起来类似于垃圾收集,就像Mac上的Objective-C和其他语言一样.ARC如何与垃圾收集不同?

iphone garbage-collection ios automatic-ref-counting

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

使用ARC的优点和缺点是什么?

在iOS项目中使用新的自动引用计数(ARC)内存管理方式有哪些优缺点?

使用iOS 5.0 SDK进行开发时,您可以选择不使用ARC吗?

您是否为新项目推荐ARC或手动引用计数(MRC)?

使用ARC的应用程序是否能够在比iOS 5.0更旧的操作系统版本上运行?

iphone reference-counting ios ios5 automatic-ref-counting

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

iOS应用程序配置文件

在C#应用程序中,我总是使用一个app.config文件来保存我的应用程序的一些数据,以便在需要时加载(例如,连接字符串).

在iOS应用程序中保存此类信息的最佳方法是什么?

configuration-files ios

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

ARC禁止明确发送"保留"问题的消息

我正在使用Apple指南中的这个非常简单的代码:

NSMutableData *receivedData;

// Create the request.
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com/"]
                        cachePolicy:NSURLRequestUseProtocolCachePolicy
                    timeoutInterval:60.0];
// create the connection with the request
// and start loading the data
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
    // Create the NSMutableData to hold the received data.
    // receivedData is an instance variable declared elsewhere.
    receivedData = [[NSMutableData data] retain];
} else {
    // Inform the user that the connection failed.
}
Run Code Online (Sandbox Code Playgroud)

但是对于receivedData = [[NSMutableData data] retain];Xcode 行我给出了一个错误:PushController.m:72:25: ARC forbids explicit …

xcode cocoa memory-management objective-c automatic-ref-counting

12
推荐指数
1
解决办法
3万
查看次数

iPad/iPhone上的OpenGL ES 2.0到视频

尽管StackOverflow上有很好的信息,但我仍然在这里尽力而为......

我正在尝试将OpenGL渲染缓冲区写入iPad 2上的视频(使用iOS 4.3).这正是我正在尝试的:

A)设置AVAssetWriterInputPixelBufferAdaptor

  1. 创建一个指向视频文件的AVAssetWriter

  2. 使用适当的设置设置AVAssetWriterInput

  3. 设置AVAssetWriterInputPixelBufferAdaptor以将数据添加到视频文件中

B)使用该AVAssetWriterInputPixelBufferAdaptor将数据写入视频文件

  1. 将OpenGL代码渲染到屏幕上

  2. 通过glReadPixels获取OpenGL缓冲区

  3. 从OpenGL数据创建CVPixelBufferRef

  4. 使用appendPixelBuffer方法将PixelBuffer附加到AVAssetWriterInputPixelBufferAdaptor

但是,我遇到了这个问题.我现在的策略是在按下按钮时设置AVAssetWriterInputPixelBufferAdaptor.一旦AVAssetWriterInputPixelBufferAdaptor有效,我设置一个标志来通知EAGLView创建一个像素缓冲区,并通过appendPixelBuffer将它附加到视频文件中给定数量的帧.

现在我的代码崩溃,因为它试图附加第二个像素缓冲区,给我以下错误:

-[__NSCFDictionary appendPixelBuffer:withPresentationTime:]: unrecognized selector sent to instance 0x131db0
Run Code Online (Sandbox Code Playgroud)

这是我的AVAsset设置代码(很多是基于Rudy Aramayo的代码,它可以在普通图像上工作,但不是为纹理设置的):

- (void) testVideoWriter {

  //initialize global info
  MOVIE_NAME = @"Documents/Movie.mov";
  CGSize size = CGSizeMake(480, 320);
  frameLength = CMTimeMake(1, 5); 
  currentTime = kCMTimeZero;
  currentFrame = 0;

  NSString *MOVIE_PATH = [NSHomeDirectory() stringByAppendingPathComponent:MOVIE_NAME];
  NSError *error = nil;

  unlink([betaCompressionDirectory UTF8String]);

  videoWriter = [[AVAssetWriter alloc] initWithURL:[NSURL fileURLWithPath:betaCompressionDirectory] fileType:AVFileTypeQuickTimeMovie error:&error];

  NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:AVVideoCodecH264, AVVideoCodecKey,
                                 [NSNumber numberWithInt:size.width], AVVideoWidthKey, …
Run Code Online (Sandbox Code Playgroud)

video ios xcode4 avassetwriter opengl-es-2.0

9
推荐指数
1
解决办法
9478
查看次数

ARC和MRC之间的区别

我对Apple材料感到困惑.

我们通过3种方式管理内存,它们是:

  1. 自动referance计数.
  2. 手动引用计数.
  3. 垃圾收集.

我怀疑自动参考计数和手动参考计数之间的区别是什么.

有人可以解释一下吗?

iphone garbage-collection memory-management automatic-ref-counting

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

IOS 5 SDK中的Objective C 2.0垃圾收集器VS自动参考计数器

只是想知道是否有人知道Objective C 2.0垃圾收集器和IOS 5 SDK中的新自动参考计数器有什么不同?

IOS 5 SDK也使用Objective C 2.0吗?

注意:我的意思是客观的C 2.0 - 我从这个链接http://theocacao.com/document.page/510看到了

谢谢

garbage-collection objective-c ios automatic-ref-counting

7
推荐指数
2
解决办法
7138
查看次数

"内存自动管理" - 怎么样?

我知道的最大区别GC和ARC是GC运行时间过程,同时ARC在编译的时候进行操作.因此,在使用ARC时,开发人员需要在某些情况下处理内存.

根据这一点,在SWFT内存管理体系结构中没有任何地方可供开发人员交互.

那他们怎么做呢?他们是否有运行时清理内存的过程,还是有其他的东西?

garbage-collection ios swift

4
推荐指数
1
解决办法
1551
查看次数

ARC工作时?编译还是运行时?

在ARC(自动引用计数)工作时在Objective-C或Swift中?在编译阶段还是在运行时阶段?那为什么重要呢?

objective-c automatic-ref-counting swift

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