小编Lor*_*o B的帖子

你什么时候在iPhone上使用encodeWithCoder:和initWithCoder:?

正如我在上述主题中提出的问题所述,为了说"好的,我需要encodeWithCoder:initWithCoder:为此实例化",您通常需要满足哪些要求?通常你可以写对象状态NSUserDefaults,所以我很好奇你的专家什么时候决定使用一个与另一个?

iphone cocoa-touch objective-c initwithcoder

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

NSURLConnection阻止主线程吗?

我正在使用NSURLConnectioniPhone应用程序,并且在发送initWithRequest:到我的NSURLConnection实例后界面似乎变慢了.我不确定这是否正在发生,因为我的处理代码需要很长时间来处理响应,或者是因为NSURLConnection它阻塞了主线程.

任何人都可以确认NSURLConnection将创建连接并在单独的线程上等待数据,然后在主线程上调用其委托方法吗?

谢谢!

iphone multithreading nsurlconnection

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

用于UIScrollView的iOS5 UITapRecognizer干扰按钮.怎么修?

UIButton在一个UIView内部有一堆s UIScrollView.我正在尝试向滚动视图添加点按识别器.点击识别器会触发,但现在我的按钮都没有工作.

我知道在iOS5中,完成后UIScrollView可以以某种方式将触摸事件传递给控件层次结构.任何人都可以帮我弄清楚如何做到这一点?

objective-c uibutton uiscrollview uigesturerecognizer ios

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

如何改变导航栏标题的正面颜色

我在我的应用程序中使用导航控制器,并希望更改navigationBar的标题颜色.

我正在使用下面的代码

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor grayColor],UITextAttributeTextColor,nil];
    [self.navController.navigationBar setTitleTextAttributes:dic];
Run Code Online (Sandbox Code Playgroud)

我使用ARC xcode 4.2还有一件事,这个代码只放在appdelegate上

它在ios 4+中运行良好,但不适用于以下版本.

请帮助我如何从appdelegate上的单个代码执行此操作

iphone objective-c uinavigationbar uicolor ios

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

旋转45°的UIView消失了吗?

也许我没有得到.当我做

self.tweetPeak.transform = CGAffineTransformMakeRotation(RADIANS(45));
Run Code Online (Sandbox Code Playgroud)

RADIAN在哪里

#define RADIANS(degrees) ((degrees * M_PI) / 180.0)
Run Code Online (Sandbox Code Playgroud)

在一个简单的UIView对象上它将消失.

我想这只是为了看到它.我的印象是视图在20到45度之间变小.

它是什么?我试图将视图设置为不透明.没有效果.

克里斯

objective-c uiview cgaffinetransform ios

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

ARC的Objective-C命名约定和可能的警告

我有纯ARC编码的经验.作为一个编译器功能,它尊重Objctive-C方法系列,只要需要就设置正确的保留/释放调用.

所有以启动方法alloc,mutableCopy,copynew创建新的对象.它们增加了保留计数.因此,当我不再需要时,ARC将释放任何指针(以及与之关联的对象).

我认为当我编写不遵循命名约定的方法时,可能会出现问题.例如,如果我newCustomer在第一个版本中编写类似的方法返回自动释放的对象,而在第二个版本中则不会,会发生什么?

特别是,我的问题如下(它们属于同一推理):

  • 如果调用和被调用的代码都是用ARC编译的,会发生什么?
  • (a)如果使用ARC编译调用代码而使用非ARC编译调用时会发生什么?
  • (b)如果在使用ARC编译调用时使用非ARC编译调用代码会发生什么?

会意识到一个答案,显示ARC怎样在底层工作(下objc_release,objc_retainAutoreleasedReturnValue等).

先感谢您.

objective-c llvm-clang automatic-ref-counting

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

了解Backbone和Marionette View生命周期

我是这个世界的新手,我需要了解Backbone和Marionette的一些概念.在这里,我试图解释一些我正在学习的概念.对它们进行一些反馈会很棒.

render函数定义了呈现模板的逻辑.完成后,将onRender调用回调.这里我假设渲染的视图没有附加到DOM.它由一个tagName(默认值div)组成,其中包含我附加到它的模板.要将该标记显式插入DOM,我需要将其附加到某处.我错了吗?

一般来说,我会做以下事情.

var view = new MyView();
view.render();
$("container").append(view.$el);?
Run Code Online (Sandbox Code Playgroud)

Marionette使用区域概念扩展了Backbone.show可以在区域上调用该方法以呈现特定视图.

var view = new MyView();
region.show(view);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,该show方法将自己调用该render函数,最后,当视图的内容将被放入DOM中时,将在该视图上调用该函数onShow.好吗?

从Marionette doc开始,还有一个叫做回调的回调onDomRefresh.从我的实验中,我注意到之前调用过此方法onShow.所以,我的假设是视图尚未附加到DOM.但该文件说明如下.

在渲染视图后触发,已经通过Marionette.Region显示在DOM中,并且已经重新渲染.

你能给它一些提示吗?

提前致谢.

javascript lifecycle backbone.js backbone-views marionette

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

alloc + init内存使用机制

我只是想知道一个对象何时被alloc分配,并且分配了一块内存,为什么init不使用那段内存并更改对象的地址?

NSDate *t = nil;
NSLog(@"t = %p",t); // t = 0x0 

t = [NSDate alloc];
NSLog(@"t = %p",t); // t = 0x100107af0

t = [t init];
NSLog(@"t = %p",t); // t = 0x1001035a0
Run Code Online (Sandbox Code Playgroud)

objective-c foundation

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

在loadView方法中计算视图大小的最佳实践

loadViewUIViewController没有XIB文件的情况下计算方法中的视图大小的最佳做法是什么?

这是我的解决方案:

- (void)loadView {

  //Calculate Screensize
  BOOL statusBarHidden = [[UIApplication sharedApplication] isStatusBarHidden ];
  BOOL navigationBarHidden = [self.navigationController isNavigationBarHidden];
  BOOL tabBarHidden = [self.tabBarController.tabBar isHidden];

  CGRect frame = [[UIScreen mainScreen] bounds];

  if (!statusBarHidden) {
    frame.size.height -= [[UIApplication sharedApplication] statusBarFrame].size.height; 
  }
  if (!navigationBarHidden) {
    frame.size.height -= self.navigationController.navigationBar.frame.size.height; 
  }
  if (!tabBarHidden) {
    frame.size.height -= self.tabBarController.tabBar.frame.size.height; 
  }

  UIView *v = [[UIView alloc] initWithFrame: frame];
  [v setBackgroundColor: [UIColor whiteColor] ];
  [v setAutoresizingMask: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight ];
  [self setView: v ];
  [v release]; …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller loadview ios

7
推荐指数
1
解决办法
3341
查看次数

具有Core Data对象的动态UITableView高度

过去几天我一直试图解开一个谜团,为什么批量大小为20的NSFetchedResultsController在获取完成后会立即故障(即加载到内存中)所有对象,导致请求大约需要20秒.

事实证明,这是因为在我的heightForRowAtIndexPath中,高度基于每个获取对象的NSString属性的长度,因此在重新加载表时,如果表有2000行,则计算每个行的高度.从一开始,由于我访问了对象的文本属性,它会在一开始就在2000个对象(20个大小的批处理)中出错,导致它永远占用.(我不知道排的高度是在开始时计算的).

所以问题是,如果我有一个批量大小为20的获取结果控制器,但我的行高是基于对象的文本属性,如果我尝试访问会导致该对象不再是一个错误但是实际加载到内存中,计算高度的解决方法是什么?

我有什么选择?

core-data objective-c row-height uitableview ios

7
推荐指数
1
解决办法
740
查看次数