小编cxa*_*cxa的帖子

实施自己的setter或使用KVO?

简而言之,当属性值发生变化时,我必须更新代码中的一些逻辑,例如:

- (void)setProp:(NSString *)theProp
{
  if (prop != theProp){
    [prop release];
    prop = [theProp copy];
    [self myLogic];
  }
}
Run Code Online (Sandbox Code Playgroud)

要么:

- (void)observeValueForKeyPath:(NSString *)keyPath
                      ofObject:(id)object
                        change:(NSDictionary *)change
                       context:(void *)context
{
  if ([keyPath isEqualToString:@"prop"]){
    [self myLogic];
  }  
}
Run Code Online (Sandbox Code Playgroud)

哪种方式最好,为什么?

编辑:我完全采用第二种方式,因为我不知道编译器会@synthesize为我生成指令,我选择相信编译器比我欠的setter实现更聪明,因此我不会破坏某些东西.

setter properties objective-c key-value-observing

12
推荐指数
2
解决办法
3333
查看次数

Objective-C运行时版本是否会为用户保留关联引用?

当一些代码像这样:

objc_setAssociatedObject (
  obj,
  &key,
  val,
  OBJC_ASSOCIATION_RETAIN
);
Run Code Online (Sandbox Code Playgroud)

我需要打电话给相关的

objc_setAssociatedObject (
  obj,
  &key,
  nil,
  OBJC_ASSOCIATION_RETAIN
);
Run Code Online (Sandbox Code Playgroud)

释放保留值?Objective-C运行时是否在dealloc某处或某处自动释放关联引用?

reference associative objective-c

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

通过 CTFontRef 或 CGFontRef 对象中的字形索引获取 unicode 字符

CTFontRef 提供了很好的方法,例如CTFontGetGlyphsForCharacters将字符映射到字形。我的问题是,是否有任何反转映射的方法?也就是说,我可以通过给定的字形获得字符吗?由于我发现有一个CTFontCopyCharacterSet用于获取所有支持的字符,我认为会有一些不错的解决方案。

objective-c core-text

6
推荐指数
2
解决办法
2968
查看次数

如何在非ARC下归零弱引用?

我不喜欢ARC.

但ARC的最重要特征是归零弱参考,在非ARC下缺失.目前我正在使用MAZeroingWeakRef,它可以工作,但hacky,有时会使代码多余.将弱引用归零的任何其他方法?

cocoa weak-references automatic-ref-counting

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

如何从iOS中的系统字体的CGFontRef创建FT_Face?

在iOS中,你不知道字体文件路径(我的意思是,虽然你可以在/ System的某个地方看到它们,但是没有用于获取字体路径的API,它们可能在将来被更改),访问字体就是它的名字,例如.[UIFont fontWithName...],CGFontCreateWithFontName等等.

我需要在我的项目中使用的FreeType,我要转换CGFontRefFT_Face,但正如上面提到的,我不能让字体的文件路径,所以我不知道是否有某种方式来创建FT_FaceCGFontRef

c freetype ios

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