小编an0*_*an0的帖子

如何确定选择器的参数/关键字的数量

我知道可以通过解码从sel_getName返回的选择器名称来完成.

但是我可以在运行时获得任何其他更方便的预加载信息吗?

objective-c

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

如果我使用clearColor作为backgroundColor,是否需要将UIVIew.opaque设置为NO?

需要我写:

view.opaque = NO;
Run Code Online (Sandbox Code Playgroud)

对于透明backgroundColor或小于1的每个视图alpha

从文档来看似乎如此:

预计不透明视图将使用完全不透明的内容填充其边界 - 也就是说,内容的alpha值应为1.0.如果视图不透明并且未填充其边界或包含完全或部分透明的内容,则结果是不可预测的.如果视图完全透明或部分透明,则应始终将此属性的值设置为NO.

但事实上,我从来没有这样做,很少看到其他人这样做,代码工作得很好.

如果事实证明我确实需要设置opaqueNO,是时候对我来说,挖掘出所有的恶意代码和纠正.

uiview ios

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

缓存对NSFetchedResultsController的影响是什么

我当然读了博士,但我不太明白"设置任何部分和订购内容"的含义.

  1. 这些信息不是来自数据库吗?
  2. 这是否意味着除NSFetchedResultsController数据库指数外还需要其他一些指数?
  3. NSFetchedResultsController设置缓存时真正发生了什么?
  4. 缓存只对静态数据有用吗?如果我的数据经常更新,我应该使用缓存吗?
  5. 如何分析缓存的性能?我试过缓存,但看不到任何性能提升.我定时-performFetch:但看到时间从0.018秒(没有缓存)增加到0.023秒(带缓存).我也定时-objectAtIndexPath:,只有一个时间从0.000030(没有缓存)减少到0.000029(带有catch).

换句话说,我想知道缓存何时(或不)提高性能和原因.

正如@Marcus在下面所指出的那样,"500个条目很小.核心数据可以处理它而没有人类明显的滞后.当你有成千上万的记录时使用缓存." 所以我认为很少有应用程序可以从使用缓存中受益.

macos core-data nsfetchedresultscontroller ios

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

为什么C99对通用字符名称有如此奇怪的限制?

6.4.3通用字符名称

通用字符名称不应指定短标识符小于00A0而不是0024($),0040(@)或0060(`)的字符,也不能指定D800到DFFF范围内的字符.

除了这种限制不再具有"普遍性"这一事实外,我无法想出这种限制的充分理由.谁知道背景故事?

c unicode

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

如何让孩子MOC看到父母MOC的变化以及如何解决他们之间的冲突?

看起来基于MOC的新队列与iOS 5中引入的嵌套MOC一起作为一种更简单,更清晰的并发模型,所以我现在很乐意使用它.但有几件事我不清楚:

  1. 儿童MOC会自动提取父母MOC的变化吗?或者我还需要手动协调它们吗?如果是后者,如何手动刷新子项以包含父更改?(我知道事情的相反方式 - 当孩子保存时,父MOC会从子MOC获得更改.)
  2. 如果儿童的变化与父母的变化之间存在冲突,保存儿童MOC会发生什么?是否mergePolicy还负责解决孩子MOC和家长建设部之间的冲突?

core-data ios

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

(string.length,0)是字符串的有效范围吗?

NSString类似的方法-substringWithRange:-rangeOfString:options:range:陈述:

要点:如果aRange的任何部分位于字符串末尾之外,则引发NSRangeException.

在我看来,range(string.length,0)超出了字符串的结尾.但是,[string substringWithRange:NSMakeRange(string.length, 0)]不会提高NSRangeException但返回空字符串.所以我不确定(string.length,0)是否是有效范围.

相比较而言,无论是[string substringWithRange:NSMakeRange(string.length + 1, 0)][string substringWithRange:NSMakeRange(string.length, 1)]将提高NSRangeException.但它们非常明显地超越了结束,而(string.length,0)似乎是一个关键点.

cocoa objective-c nsstring ios

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

为什么是2?旋转动画不适用于 CALayer.transform?

为什么直接使用CATransform3Dfortransform不行

let rotationAnimation1 = CABasicAnimation(keyPath: #keyPath(CALayer.transform))
rotationAnimation1.toValue = CATransform3DMakeRotation(.pi * 2, 0, 0, 1)
rotationAnimation1.duration = 1
Run Code Online (Sandbox Code Playgroud)

但用于CGFloat作品transform.rotation

let rotationAnimation2 = CABasicAnimation(keyPath: "transform.rotation")
rotationAnimation2.toValue = CGFloat.pi * 2
rotationAnimation2.duration = 1
Run Code Online (Sandbox Code Playgroud)

这里是可以玩的游乐场。

core-animation ios

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

核心动画隐式动画不会为新添加的子图层触发

不知道为什么这不起作用.我不能为新添加的子层执行隐式动画,直到有些人甚至触发它就像按下按钮或从另一个方法调用.下面的内容即使我认为我应该也没有动画.它只显示图层的"后"状态.

    CAGradientLayer *newBar = [CAGradientLayer layer];

    CGFloat barHeight = ((pair.amount.floatValue/self.model.maxModelValue.floatValue)*maxBarHeight);
    newBar.bounds=R(0,0,self.barWidth,0); 
    newBar.anchorPoint=P(0, 1);
    newBar.position=P((i*barSpacing), self.insideLayer.bounds.size.height);
    newBar.backgroundColor=self.lowerColor.CGColor;
    newBar.colors=[NSArray arrayWithObjects:(id)self.upperColor.CGColor, self.lowerColor.CGColor, nil];
    newBar.cornerRadius=self.cornerRadius;
    newBar.opacity=1.0;
    [self.insideLayer addSublayer:newBar];

    //animation line:
    newBar.opacity=0.5;
Run Code Online (Sandbox Code Playgroud)

core-animation objective-c calayer ios

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

具有相同日期值和相同散列的两个NSDate如何不相等?

我将一个对象存储在一个NSDate键下NSDictionary.然后我得到另一个NSDate具有相同日期值并用它从中检索对象NSDictionary.令我惊讶的是,它又回来了nil.但是在我的调试会话中发现的内容让我更加震惊:

(lldb)po when
(NSDate*)$ 34 = 0x0f8be100 2012-05-11 21:08:37 +0000
(lldb)po [newTaskDict objectForKey:when]
(id)$ 36 = 0x00000000
(lldb)po [newTaskDict allKeys]
(id )$ 37 = 0x0f8c1650 <__ NSArrayI 0xf8c1650>(
2012-05-11 21:08:37 +0000
)
(lldb)po [[newTaskDict allKeys] lastObject]
(id)$ 38 = 0x0f8b5ff0 2012-05-11 21:08:37 + 0000
(lldb)p(int)[[[newTaskDict allKeys] lastObject] isEqual:when]
(int)$ 39 = 0
(lldb)po [[[newTaskDict allKeys] lastObject] class]
(id)$ 40 = 0x3f4496b0 __NSDate
(lldb) po [when class]
(id)$ 41 = 0x3f4496b0 …

comparison nsdate ios

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

在后台Moc中删除对象然后在主Moc中刷新对象会导致NSFetchedResultsController更新崩溃

我遇到了NSObjectInaccessibleException我不明白的:

 *** Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'CoreData could not fulfill a fault for '0x8c40040 <x-coredata://85B02C1C-1FFC-4CBF-B7AC-EEA259115427/Event/p6>''
*** First throw call stack:
(
    0   CoreFoundation                      0x01aa15e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x018248b6 objc_exception_throw + 44
    2   CoreData                            0x0025733b _PFFaultHandlerLookupRow + 2715
    3   CoreData                            0x00256897 -[NSFaultHandler fulfillFault:withContext:forIndex:] + 39
    4   CoreData                            0x00256473 _PF_FulfillDeferredFault + 259
    5   CoreData                            0x002562c6 _sharedIMPL_pvfk_core + 70
    6   CoreData                            0x0025acd5 -[NSManagedObject(_PFDynamicAccessorsAndPropertySupport) _genericValueForKey:withIndex:flags:] + 85
    7   CoreData                            0x00294781 _PF_Handler_Public_GetProperty + 161
    8   CoreData                            0x00294685 …
Run Code Online (Sandbox Code Playgroud)

core-data nsfetchedresultscontroller ios

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

gen_tcp的被动模式和一次模式之间的区别

我正在阅读编程Erlang 2E.在第17章的主动和被动套接字中,它说:

您可能认为对所有服务器使用被动模式是正确的方法.不幸的是,当我们处于被动模式时,我们只能等待来自一个套接字的数据.这对于编写必须等待来自多个套接字的数据的服务器毫无用处.

幸运的是,我们可以采用混合方法,既不阻塞也不阻塞.我们使用选项{active,once}打开套接字.在此模式下,套接字处于活动状态,但仅适用于一条消息.在控制进程发送消息后,它必须显式调用inet:setopts以重新启用下一条消息的接收.系统将阻止,直到发生这种情况.这是两全其美的.

相关代码:

% passive mode
loop(Socket) ->     
    ?case? gen_tcp:recv(Socket, N) ?of??    
        {ok, B} ->?     
            ... do something with the data ...?     
            loop(Socket);?  
        {error, closed}?    
            ...?    
    ?end?.

% once mode
loop(Socket) ->     
    ?receive??  
        {tcp, Socket, Data} ->?     
            ... do something with the data ...?     
            ?%% when you're ready enable the next message??     
            inet:setopts(Sock, [{active, once}]),?  
            loop(Socket);?  
        {tcp_closed, Socket} ->?    
            ...?    
    ?end?.
Run Code Online (Sandbox Code Playgroud)

我没有看到两者之间有任何真正的区别.gen_tcp:recvpassive模式本质上是做同样的事情receiveonce模式.once模式如何解决此passive模式问题: …

erlang gen-tcp

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