小编Eyt*_*tan的帖子

以编程方式创建UITableViewCell或从笔尖加载一个是否更快?

时间分析器显示我的应用程序中最耗时的操作是UITableViewCells从nib文件加载.其中最昂贵的是加载UITableViewCell4KB图像.

UITableViewCell使用以下代码从nib 加载:

    [[NSBundle mainBundle] loadNibNamed:@"UITableViewCellPortrait" owner:self options:NULL];
    cell = portraitCell;
    self.portraitCell = nil;
Run Code Online (Sandbox Code Playgroud)

有没有人比较过以编程方式创建视图或UITableViewCell从笔尖加载a之间的区别?

编辑:
我比较了UITableViewCell从笔尖重复加载和以编程方式创建视图的时间曲线.我的测试包括UITableViews在3-5秒的时间内交替两次约10次.在每个测试中,以UITableViewCell编程方式加载速度要快得多,速度提高2到6倍.

任何人都可以证实这些结果吗?

编辑:我更新了nib加载代码只加载nib文件一次,并使用缓存版本进行后续调用.

    if (self.UITableViewPortaitNib == nil) {
        self.UITableViewPortaitNib = [UINib nibWithNibName:@"UITableViewCellPortrait" bundle:[NSBundle mainBundle]];
    }

    self.UITableViewPortaitNib instantiateWithOwner:self options:NULL];
    cell = portraitCell;
    self.portraitCell = nil;
Run Code Online (Sandbox Code Playgroud)

我还使用自动化仪器来创建更一致的运行,结果仍然建议以UITableViewCells编程方式加载比加载UITableViewCells笔尖更快.UITableViewCells从笔尖加载的平均运行时间约为90 UITableViewCell毫秒,而以编程方式创建的平均运行时间为50毫秒.

iphone cocoa-touch uikit ios

15
推荐指数
2
解决办法
4176
查看次数

UIView调整大小并翻译动画不会正确地为子视图设置动画

我正在使用UIView动画来调整大小并翻译包含多个子视图的视图.父视图的动画完美发生; 但是,子视图表现出奇怪的行为.动画开始时,子视图会立即调整大小,然后移动到最终位置.

例如,如果动画的持续时间和延迟为五秒,则一旦调用动画,子视图将移动到所需的动画结束值.五秒后,superview将调整大小并转换为所需的.

我的动画代码是:

[UIView animateWithDuration:0.5 animations:^{
    if (UIDeviceOrientationIsLandscape(self.interfaceOrientation)) {
        self.leftPaneView.frame = leftPaneLandscapeFrame;
        self.rightPaneContainerView.frame = rightPaneLandscapeFrame;
    }
    if (UIDeviceOrientationIsPortrait(self.interfaceOrientation)) {
        CGFloat offset = 300;
        self.leftPaneView.frame = CGRectOffset(leftPanePortraitFrame, -offset, 0);
        self.rightPaneContainerView.frame = rightPanePortraitFrame;
    }
}];
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

注意:rightPaneContainerView包含UIViewController的视图,该视图是调用此动画的视图控制器的子视图.

iphone xcode objective-c ios

5
推荐指数
1
解决办法
2204
查看次数

呈现UIImagePickerController会导致iOS 7崩溃

我在iOS 7设备上展示UIImagePickerController时遇到问题.我使用以下代码来呈现图像选择器.

UIImagePickerController *cameraUI = [[UIImagePickerController alloc] init];
cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraUI.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
cameraUI.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
cameraUI.delegate = self;

[[self presentViewController:cameraUI animated:YES completion:NULL];
Run Code Online (Sandbox Code Playgroud)

在调用presentViewController之后,应用程序因执行错误访问而崩溃.控制台报告以下异常.

[SBSAccelerometer valueRestriction]: unrecognized selector sent to instance 0x1650e360
[__NSCFNumber valueRestriction]: unrecognized selector sent to instance 0x146d0e70
Run Code Online (Sandbox Code Playgroud)

我让僵尸看到一个对象是否过早被解除分配.Zombies报告以下例外情况:

[NSISRestrictedToNonNegativeVariable retain]: message sent to deallocated instance 0x156f0010
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

编辑

这是我在启用僵尸时收到的堆栈跟踪:

在此输入图像描述

iphone cocoa-touch ios ios7

5
推荐指数
1
解决办法
2494
查看次数

.html()返回undefined

我是JQuery的新手,无法获取div块的内容.

  <div class="update_status">
    Updated successfully
  </div>
Run Code Online (Sandbox Code Playgroud)

当以下脚本运行时:

$(document).ready(function () {
  $(function () {
    var $status_div = $("#update_status");
    if ($status_div) {
      alert("1");
      alert($status_div.html());    
      alert("2");
    } else {
      alert("undefined");
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

我收到三个警报,"1","未定义"和"2".我希望得到"成功更新".关于我做错了什么的任何想法?

jquery ruby-on-rails ruby-on-rails-3

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

使用FactoryGirl创建具有所需关联的对象

我正在寻找有关如何在处理具有许多必需关联对象的对象时有效使用ruby gem"FactoryGirl"的建议.

例如,假设我的班级之间有以下关系.

class A < ActiveRecord
  has_many B
end

class B < ActiveRecord
  belongs_to A
  has_many C
end

class C < ActiveRecord
  belongs_to B
end
Run Code Online (Sandbox Code Playgroud)

现在,如果我想为我的C控制器编写测试用例,我必须在这个链中创建所有对象.现在,这就是我在工厂里做的事情.但有更好的方法吗?

rspec ruby-on-rails factory-bot

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