小编DCM*_*xxx的帖子

添加NSCoding作为扩展

我想扩展一个框架类(我不想直接编辑源代码),并使其符合NSCoding.

基本上,这是我所处的情况的简化:

/* Can't be edited. */
class Car: NSObject {
    var color: String?
}

/* Can be edited */
extension Car: NSCoding {
    init(coder aDecoder: NSCoder) {
    }

    func encodeWithCoder(aCoder: NSCoder) {
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是init(coder aDecoder: NSCoder),根据头文件,a designated initializer(这不是很奇怪吗?不应该是convenience initializer).但是,文档说扩展无法添加新的指定初始化程序.

我的英语不完美,也许我错过了一些东西......或者它真的不可能?

nscoding designated-initializer swift

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

Objective-C:#define vs extern const

我之前已经问过这个问题,但我似乎无法在Apple的文档中找到相关信息; 也许你们有些人做过.

很多Objective-C代码都在.h文件中使用了跨文件常量#define.其他人在文件中使用.mwith常量的方法.extern.h

我理解差异,包括优点和缺点,但Apple是否说明在iOS开发中使用哪一个?

macos objective-c ios

11
推荐指数
2
解决办法
7228
查看次数

Autolayout,UIDynamics和动画

我对自动布局很新,我对如何动画视图感到困惑.

我读了很多,我知道你必须坚持约束,编辑它,并将其包装layoutIfNeeded在一个UIView动画块中.

但是当谈到这样做时,我有点失落.如果有人可以解释我这个动画是如何完成的,我会很高兴.

我认为它可能使用a UIPanGestureRecognizer来改变constant前导空间到容器约束,但它可能使用UIDynamics(对于右边的反弹效果?).

animation ios autolayout uikit-dynamics

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

在UIView下面添加CALayer

我有一个UIView(让我们称之为superview)包含另一个UIView(让我们称之为子视图).

我想添加一个,CALayer以便在我的超级视图上显示,但在我的子视图下.换句话说,我的子视图的背景应该覆盖图层.

我看过addLayer:below:其他人,但我不确定如何使用它.谢谢.

编辑:我的不好,我在superview和subview之间有另一种观点,我正在弄乱它.多谢你们 !

objective-c calayer uiview ios

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

检测在MKMapView中选择第二个注释的时间

当用户在地图中选择注释时,我会显示带有信息的底部视图,例如google地图应用.我在地图的代表中显示它:

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
Run Code Online (Sandbox Code Playgroud)

当用户取消选择它(通过在地图上的任何位置录制)时,我隐藏了我的底部视图.这是在相反的委托方法中完成的:

- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
Run Code Online (Sandbox Code Playgroud)

它运作良好,我很高兴.但是,如果用户选择第二个注释(即:他点击第一个注释,然后点击另一个注释,同时不首先取消选择注释),我不想隐藏我的底部视图然后再次显示它.我只想改变它的信息.

然而,随着mapView:didDeselectAnnotationView:被称为 mapView:didSelectAnnotationView:,我无法弄清楚如何检测我上面描述的情况.

我的问题是:如何检测用户选择第二个注释或者,我该如何以其他方式解决此问题

annotations objective-c mkmapview ios

10
推荐指数
2
解决办法
1595
查看次数

获取当前的CAAnimation转换值

我想访问获取某个时间点的变换比例的值.这是动画创作:

    CABasicAnimation *grow = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    grow.toValue = @1.5f;
    grow.duration = 1;
    grow.autoreverses = YES;
    grow.repeatCount = HUGE_VALF;
    [view.layer addAnimation:grow forKey:@"growAnimation"];
Run Code Online (Sandbox Code Playgroud)

我希望,例如当用户按下按钮时,视图的当前大小.记录帧或边界始终返回常量值.任何帮助将非常感激 !

objective-c calayer ios

9
推荐指数
3
解决办法
4791
查看次数

iOS 7状态栏透明度

我被困在看起来微不足道的东西上,但我真的不明白发生了什么.

我正在使用iOS 7 SDK进行编译,并且无法使状态栏变得透明.它完全是黑色的.在我的.plist中,Status bar styleTransparent black style (alpha of 0.5).我已经尝试了所有其他选项,但我无法让它工作.

我仍然需要支持iOS 6,但我希望iOS 7状态栏默认是透明的,对吗?

什么可能导致这个?

谢谢

objective-c statusbar ios ios7

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

在Xcode 6 GM的嵌入式框架中使用Cocoapods

这是我的配置:

  1. Pod X:链接MyProjectSharedCode,声明类SomeClass(在Objective C中)
  2. MyProjectExtension :今天扩展,与之共享数据 MyProject
  3. MyProject :配置的Companion应用程序 MyProjectExtension
  4. MyProjectSharedCode:在通用代码嵌入式框架MyProjectMyProjectExtension.用途SomeClass.

我无法让它发挥作用.我试过了 :

  • 导入PodX.hMyProjectSharedCode.h,但它会导致编译器错误:

包含框架模块内的非模块化头

  • 这引出了我的一些Stackoverflow链接,包括这一个.但是,更改此选项不允许我编译.正如@NachoSoto在接受的答案的最后评论中所说的那样,自Xcode 6 B5以来,答案似乎不起作用.

任何帮助/潜在客户将不胜感激.

xcode frameworks cocoapods swift

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

只是一个循环,33次泄漏

在我的Mac上看起来很奇怪:

$> cat main.c
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>   
int main(int ac, char **av) {
    for (int i = 0; i < ac; i++)
        printf("%s\n", av[i]);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)
$> gcc main.c -std=c99
$> valgrind ./a.out hello my friends
Run Code Online (Sandbox Code Playgroud)

这是结果:

==725== Memcheck, a memory error detector
==725== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==725== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==725== Command: ./a.out hello my friends
==725== 
--725-- ./a.out:
--725-- dSYM directory is missing; …
Run Code Online (Sandbox Code Playgroud)

c macos valgrind memory-leaks

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

iOS 6下的错误约束

我试图重现我们现在到处都可以看到的视差效果,每当你拉下一个滚动视图时,它背后会显示一个图像(见这个问题).

互联网上有很多解决方案,但我试图让它使用自动布局.几天前我看到有人让它在闪电谈话中工作,但我想我没有给予足够的重视......

我让它在iOS 7下工作,但是,在iOS 6下,图像视图并没有坚持到顶部.这是我现在所处的示例项目:DCParallaxHeader.

另一个问题是,有没有办法根据屏幕的大小使底部视图大小的动态?(因为它包含在scrollview中,我们必须使用约束提供contentSize吗?).

objective-c ios autolayout nslayoutconstraint

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