小编kpo*_*wer的帖子

Apple Interface Builder:将子视图添加到UIImageView

我是UIImageView在Interface Bulder的帮助下创建的.现在我想在其中放置标签(作为其子视图).在代码中,我可以键入类似的内容:[myUIImageView addSubview:myUILabel];但是我可以在IB的帮助下完成吗?我找到了解决方案UIView,但找不到类似的东西UIImageView.

interface-builder subview uiimageview addsubview

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

OCUnit和NSBundle

我根据"iPhone开发指南"创建了OCUnit测试.这是我要测试的类:

// myClass.h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface myClass : NSObject {
    UIImage *image;
}
@property (readonly) UIImage *image;
- (id)initWithIndex:(NSUInteger)aIndex;
@end


// myClass.m
#import "myClass.m"

@implementation myClass

@synthesize image;

- (id)init {
    return [self initWithIndex:0];
}

- (id)initWithIndex:(NSUInteger)aIndex {
    if ((self = [super init])) {
        NSString *name = [[NSString alloc] initWithFormat:@"image_%i", aIndex];
        NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:@"png"];
        image = [[UIImage alloc] initWithContentsOfFile:path];
        if (nil == image) {
            @throw [NSException exceptionWithName:@"imageNotFound"
                reason:[NSString stringWithFormat:@"Image (%@) with path \"%@\" for …
Run Code Online (Sandbox Code Playgroud)

resources unit-testing ocunit nsbundle

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

无法使用XCTest启动测试

一切都运行良好,但在一些构建我得到了这个(当试图启动测试时):

无法加载"xctest路径"中的测试包,因为它是针对与当前运行的测试装备(以x86_64运行)不同的架构而构建的

我究竟做错了什么?我试图重建,清理,重新启动Xcode,重启OS X ......

xcode ios xctest

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

暂停NSOperation

我有NSOperationQueue一些NSOperations(NSInvocationOperations特别是).此操作会进行一些计算并相应地(当然,通过performSelectorOnMainThread:...)更改UI元素的状态,通常使用动画.

我的UI有UINavigationViewController和一些用于导航到另一个视图的按钮.因此,用户可以保留当前视图,而计算/动画仍在进行中.我需要的是以某种方式停止这一点,直到用户回到当前视图.

我找到的唯一解决方案是创建一些线程安全的布尔标志 - 并在所有线程中检查它(类似于:while!flag sleep_for_some_time;).还有更好的东西吗?

iphone nsoperation nsoperationqueue

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

iPhone:OpenAL和AudioToolbox泄漏

我使用OpenAL在我的应用程序中播放声音.当我使用Instruments工具测试它时,它会发现泄漏:
LeakedObject = GeneralBlock-512
Size = 512 Bytes
Responsible Library = AudioToolbox
Responsible Frame = AU3DMixerEmbeddedInputElement :: Initialize()

堆栈跟踪:

   0 libSystem.B.dylib malloc
   1 libstdc++.6.dylib operator new(unsigned long)
   2 libstdc++.6.dylib operator new[](unsigned long)
   3 AudioToolbox AU3DMixerEmbeddedInputElement::Initialize()
   4 AudioToolbox AU3DMixerEmbedded::SetProperty(unsigned long, unsigned long, unsigned long, void const*, unsigned long)
   5 AudioToolbox AUBase::DispatchSetProperty(unsigned long, unsigned long, unsigned long, void const*, unsigned long)
   6 AudioToolbox AUMethodSetProperty(void*, unsigned long, unsigned long, unsigned long, void const*, unsigned long)
   7 OpenAL OALContext::InitializeMixer(unsigned long)
   8 OpenAL …
Run Code Online (Sandbox Code Playgroud)

iphone memory-leaks instruments

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

iOS OpenGL ES屏幕旋转,而后台应用栏可见

我的应用程序用于GLKit渲染3D场景OpenGL ES.

一切都很好,除了一件事.当我在iPad中启动我的应用程序并显示后台应用程序栏(单击双击"主页"按钮)然后更改设备的方向时,场景会被错误更新(最后渲染的图像只是拉伸以填充新的矩形).

我找到了原因.当出现后台应用程序栏时,GLKViewController's pausedYES自动设置(应用程序委托接收-applicationWillResignActive:),并且在此栏关闭之前不会进行渲染.

我在Apple指南(iOS的OpenGL ES编程指南/实现多任务感知的OpenGL ES应用程序)中找到了,在收到-applicationWillResignActive:应用程序后应停止GL渲染或终止.所以似乎一切都好,除了轮换后的糟糕渲染:)

我检查了一些OpenGL游戏.当显示此栏时,它们也会"暂停",但不知何故正确更新设备旋转时暂停的场景.他们是如何做到这一点的?

ipad screen-rotation ios glkit

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

CoreGraphics中的Float比较(相等)

苹果CoreGraphics.framework,CGGeometry.h:

CG_INLINE bool __CGSizeEqualToSize(CGSize size1, CGSize size2)
{
    return size1.width == size2.width && size1.height == size2.height;
}
#define CGSizeEqualToSize __CGSizeEqualToSize
Run Code Online (Sandbox Code Playgroud)

他们为什么(Apple)比较花车==?我不敢相信这是一个错误.所以你能解释一下吗?(我期待类似的东西fabs(size1.width - size2.width) < 0.001).

floating-point comparison geometry equality core-graphics

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

objective-c单例内存释放

如果没有使用垃圾收集器(iPhone环境),当我的应用程序终止时,我应该以某种方式释放共享对象(单身基于哪个)?

iphone memory-leaks memory-management objective-c

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

php getdate()vs date()

理论问题.

想象一下情况.我需要今天的日期和时间(不是现在,但今天 - 当天的开始).我可以使用以下代码执行此操作:

$now = time();
$today = date('Y-m-d H:i:s', mktime(0, 0, 0, date("m", $now), date("d", $now), date("Y", $now)));
Run Code Online (Sandbox Code Playgroud)

或这个:

$now = getdate();
$today = date('Y-m-d H:i:s', mktime(0, 0, 0, $now['mon'], $now['mday'], $now['year']));
Run Code Online (Sandbox Code Playgroud)

在我看过的大多数例子中,使用了第一种方法.问题很简单:为什么?第一个使用3个函数调用来获取月,日和年.

php date getdate

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

GLKit的-drawRect:在屏幕旋转期间不调用

我有一个GLKit基于应用程序,显示一些简单的对象.

一切正常,除了屏幕旋转,在此期间GLKView不更新(-drawRect:未调用).因此,在旋转期间,投影矩阵不会根据动态变化的屏幕尺寸进行更新,并且对象看起来很糟糕(拉伸).

screen-rotation ios auto-rotation glkit glkview

5
推荐指数
2
解决办法
1518
查看次数