Tag: 自动ref counting

IOS强大和分配

我有一个与ARC有关的问题。 在我的界面中,我宣称uiwebview是一个strong属性。 在我的代码中,我有懒惰加载像这样: – (UIWebView *)aWebView{ if(aWebView == nil){ aWebView = [[UIWebView alloc] initWithFrame:self.bounds]; } return aWebView; } ARC下的代码是否正确?

EXC_BAD_ACCESS与ARC

我正在使用ARC,我有一个CustomTableViewController,并将自定义视图添加到我的背景单元格,页眉和页脚。 例如在tableView:viewForFooterInSection方法我把这些代码行: – (UIView *) tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { CustomFooter *footer = [[CustomFooter alloc] init]; return footer; } CustomFooter是UIView的子类,它绘制一个矩形作为背景单元格- (void)drawRect:(CGRect)rect 当我在模拟器上运行应用程序的作品,但当我尝试在我的iPhone上,它崩溃。 我该如何解决它? 这是我的崩溃报告: Date/Time: 2012-06-28 12:37:07.168 +0200 OS Version: iPhone OS 5.1.1 (9B206) Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x00000009 Crashed Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread […]

在非ARC项目中使用ARC库

我的项目中没有使用ARC技术。 我正在尝试添加SBJson库。 我为所有具有SBJson前缀的文件设置了-fobjc-arc标志,但是在编译过程中,ARC语义问题(指向非常量types“id”的指针没有明确的所有权)出现在与SBJSon无关的一个类头中。 为什么不起作用? 有错误的行: id *_controls; 由于项目的商业许可,我无法向您展示我的代码,我感谢您的理解。 当我使用这个库的旧版本(没有ARC)时,项目编译正常进行。

@implementation,vars和ARC

在我的项目中有一个控制器A与下一个代码: @implementation NKAddPostViewController int _characterCounter = 512; … 我在代码中更改这个variables,它的值是400.比我做popViewControllerAnimated 。 但是当我再次去这个控制器的值仍然是400.在viewWillAppear , viewDidLoad它仍然是400. 为什么? 看来,控制器A保留,但是当我在viewDidLoaddebugging属性,他们是n直到他们再次初始化。 这里是执行转移,所以没有保留controllerA: NKAddPostViewController *aContr = [NKAddPostViewController new]; [self.navigationController aContr animated:YES]; 2个问题: 那么为什么_characterCounter保留? 为什么当控制器初始化行int _characterCounter = 512; 不要将_characterCounter分配给512?

iOS项目编译

我正在研究访问Web服务的项目。 我find了一个项目 http://d1xzuxjlafny7l.cloudfront.net/downloads/PromoTest.zip 上面的代码包括JSON库[项目设置编译器= LLVM 4.2]我试图在我的项目中使用该项目的部分代码。 所以我复制JSON库到我的项目[我的项目使用苹果LLVM 3.1],然后出现一些错误 例如。 SBJsonStreamWriterState **states; //error:Pointer to non-const type "SBJsonStreamWriterState *" with no explicit ownership 我已经尝试使用编译器标志-fno-objc-arc,不行。 我不知道它是一个ARC问题? 如果是这样,那么为什么上面的编译器标志不会工作。

使用弧,初始化后,我的ivars为空

最新的testing:我放了一个NSLog(@"%p", self.myArray); 数组赋值后,我看到一个地址实际logging…..!?!?! 2012-03-06 01:33:52.618 ArrayTest[9883:f803] 0xae0f160 看来,如果Xcode无法在局部variables或工具提示突出显示方法中看到该ivar的地址,那么它就被全部解决了。 思考? 最新testing:我创build了一个全新的项目。 看起来简单的将对象分配给ivars根本不起作用。 如果在分配新创build的数组之后查看myArray的地址,则它具有空地址。 输出nslog 2012-03-06 01:30:37.283 ArrayTest[9848:f803] ( ) (lldb) // // ViewController.h // ArrayTest // // Created by Ben J Brown on 3/6/12. // Copyright (c) 2012StudioBflat. All rights reserved. // #import <UIKit/UIKit.h> @interface ViewController : UIViewController { NSMutableArray *myArray; } @property (strong) NSMutableArray *myArray; […]

debugging和发布configuration之间的不同的块行为

我的程序完美地工作。 我向你保证,我的生活,0个错误。 自豪地,我试图将应用程序打包成一个.ipa文件,用于临时分发到使用TestFlight的Betatesting。 该scheme没有工作。 应该发生的animation从未发生。 networking代码中断。 美妙地淡出音乐的button根本没有做任何事情。 事实certificate,罪魁祸首是新的和shiny的块。 当我在模拟器或我的设备上testing我的程序时,我使用了默认的“Debug”构buildconfiguration。 但是,当我将其存档以供分发(并且我相信稍后将其提交给App Store)时,XCode使用另一个“Release”configuration。 进一步调查,不同之处在于优化级别(可以在XCode的Build Settings中find它):debugging使用无(-O0),但版本使用最快,最小(-Os)。 我不知道,它是最快,最小,不起作用(tm)。 是的,这两个configuration之间的块的行为不同。 所以,我着手解决这个问题。 我已经简化了我的即将改变世界的应用程序到它的裸骨,显示在我附加到这个职位的图像。 视图控制器有一个初始值为0的实例variablesx。如果我们按b,它会产生一个线程,它会不断地检查x的值,当x变为1时,改变底部的标签。我们可以使用button来改变x的值一个。 这是我的天真代码(我使用ARC btw): @implementation MBIViewController { int _x; } – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _x = 0; } – (void)updateLabel { self.topLabel.text = [NSString stringWithFormat:@"x: […]

被取消初始化时,Unowned引用是否设置为“nil”?

我很快就对这个话题感到困惑,因为无主的引用必须总是有一个值,不能是可选的,也就是说它们不能被设置为'nil'….好吧,我只是在Apple文档中看到一个程序对于swift而言,对实例“B”的无主引用的实例“A”被去初始化并且在实例“B”被去初始化/释放之后解除分配……当var被去初始化/ dealloc并不意味着它们是设为'无'? 实例B是一个可选的,所以确保它可以容纳'零',但为什么实例'A'被取消初始化,当它应该总是有一个值? PS:如果这有帮助…..实例'B'是一个可选的types,强烈的引用实例'A'

__builtin_va_arg(指向指针的指针)

我有一个代码提取方法的参数。 va_list argp2; va_start(argp2, sel); NSURLResponse* obj = va_arg(*argp2,NSURLResponse**); argp2包含方法的参数[NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error] 我想转换argp2得到一个指向响应和错误对象。 谢谢

将非ARC项目切换到ARC

我是新的iphone开发。 我了解到,ARC是IOS中引入的新function。 我的问题是,我有一个旧的非ARC项目手动发布的版本,是否有可能将此项目从非ARC到ARC? 谢谢, 拉吉