Tag: cocoa

找不到协议声明

我有两个view controllers A和B ,他们都有他们的代表。 当我什么也没做,除了在头文件的开头定义协议, #import另一个头文件,我得到了两个错误 – 无法find协议声明“BDelegate”,这是显示在啊(我写)无法find协议声明“ADelegate”,这是显示在Bh(我写了) 在网上看,人们之前写道,头文件的通告包含可能导致问题。 他们推荐使用#include代替,或者像@ @class A 代替 #import Ah 里面#import Bh 我已经尝试了几乎所有这些导入的组合, @classes和#include但仍然无法摆脱警告。 此外,在线解决schemebuild议将#import移动到.m文件,但这也没有帮助。 部分原因是,网上的解决scheme有点模糊 – 如果你能把它分解,那就太好了。 有什么build议可以做什么来解决这个问题? – BigViewController.h – #import "BaseViewController.h" #include "BaseViewController.h" @class BigViewController; @protocol BigViewControllerDelegate -(void) BigViewController:(BigViewController *) bigView; @end @interface BigViewController : UIViewController <BaseViewControllerDelegate> { //delegate id <BigViewControllerDelegate> delegate; ivars… } @properties… @end ————————————————– […]

Objective-C中的属性和实例variables

我对Objective-C中的属性和实例variables感到困惑。 我是通过Aaron Hillegass的“Mac OS Xcocoa编程”的一半,一切都是合乎逻辑的。 你会像这样声明一个类: @class Something; @interface MyClass : NSObject { NSString *name; NSArray *items; Something *something; IBOutlet NSTextField *myTextField; } @property (nonatomic, retain) NSString *name; @property (nonatomic, retain) NSArray *items; 由于其他对象需要操作我们的name和items实例variables,因此我们使用@property / @synthesize为它们生成访问器/修改器。 在我们的类中,我们不使用访问器/增变器 – 我们只是直接与实例variables交互。 something只是一个实例variables,我们将在我们的类中使用,因为没有其他人需要使用它,所以我们不会为它创build一对访问器和增变器。 我们需要在UI中与文本字段交互,所以我们为它声明一个IBOutlet ,连接它,然后完成。 一切都很合乎逻辑 但是,在iPhone世界里,事情似乎有所不同。 人们为每个实例variables声明属性,为IBOutlets声明属性,并使用访问器/增变器与类中的实例variables进行交互(例如,它们会写[self setName:@"Test"]而不是name = @"Test" ) 。 为什么? 到底是怎么回事? 这些差异是iPhone特有的吗? 为所有实例variables声明属性,为IBOutlets声明属性以及在你自己的类中使用访问器/修改器有什么优势?

“无法连接到iTunes Store”应用内购买

我在testing应用内购买时遇到了问题。 我找回有效的产品标识符,但购买后,我收到了可怕的“无法连接到iTunes Store”。 有趣的是恢复购买似乎工作 – iTunesloginpopup。 我有: – 检查,我的应用程序内购买清除出售 – 检查,重新检查我的源代码与苹果的文档同步 – 增加了适当的testing用户 – 应用程序ID不包含通配符 – 应用内购买链接到应用程序(应用程序本身是在开发商拒绝状态,购买准备提交) – 等待 – 重新安装的应用程序,清理解决scheme,所有的巫术东西

在水平分页滚动视图中UICollectionViewalignment逻辑丢失

我有一个UICollectionView ,它工作正常,直到我开始滚动。 这里有一些照片第一: 正如你所看到的那样很好。 当我开始滚动(启用分页)第一个有点偏离屏幕: 这就是问题。 本来我的观点有3个意见,我想滚动和只显示3个意见。 但是当它滚动(启用分页)时,它隐藏了第一个视图的一点点,并显示下一个页面的下一个第一个视图的一点点。 这里是一个video,因为它很难解释: 问题的video(Dropbox) 这是我的UICollectionView设置的图片: 如果有人可以帮助,这将是非常好的!

NSWindow与NSWindowCollectionBehaviorStation显示在仪表板上。 这是一个错误?

我试图让我的NSWindow : 在所有空间中都可见 显示桌面时可见(按F11 ) 在Mission Control / Expose中不可见 下面是这样做的,但有一个副作用: [self setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorStationary ]; 在Mac OS X Lion上切换到仪表板时,该窗口在仪表板项目中一秒钟仍然可见,然后隐藏。 这是预期的行为还是错误? 我的应用程序的用户发现它很容易看到仪表板上的窗口,然后消失。 我希望他们只能显示空间,而不是仪表板。

有没有办法改变故事板中的UINavigationBar的高度,而不使用UINavigationController?

我想在我的一个视图中使用自定义的UINavigationBar ,这不是任何UINavigationController -hierarchy的一部分。 当我将一个UINavigationBar拖入Storyboard时,它显示如下: 这个栏是44px,如果状态栏不能共享这个空间就足够了。 由于iOS7允许我们使用整个屏幕,包括状态栏的空间, UINavigationBar应该是64px高,而不是44px。 如果我将视图连接到一个UINavigationController的层次结构,那么它显示正确的: 我读了一个地方, 如果 UINavigationBar的属性barPosition:设置为UIBarPositionTopAttached ,那么栏将是64px。 但是,这是一个readonly属性。 我的search结果只显示了一些我认为是“解决方法”的内容。 通过在这个UIViewController之前添加一个无用的UINavigationController ,我可以假装有一个层次结构,它将自动添加64像素的UINavigationBar 。 是否真的没有办法有一个'stream氓'(没有导航控制器的帮助下)覆盖64px的UINavigationBar ? 如果是这样的话,有什么合理的理由呢? (我不是说默认情况下UINavigationBar应该是64px,但是在检查器中应该有一个选项) (我也看到有人用程序化的方式来解决这个问题,尽pipe这些答案很有效,但是我还是要devise一个故事板(差距),我想知道的是如果可以设置的话故事板,或者说,为什么不允许?)

即使您没有打开设置应用程序,您是否可以在Settings.bundle默认设置中进行设置

我有一个iPhone应用程序与settings.bundle处理我的应用程序的各种设置。 我可以在我的root.plist文件(使用DefaultValue属性)中设置默认值,但这些仅在用户第一次打开设置应用程序时使用。 安装应用程序时有没有办法让这些值被写出来? 我知道我可以写代码来检查我的应用程序的第一次启动,然后把它们写出来,但是它们在两个不同的地方。 这里是我的root.plist的一个例子: <dict> <key>Type</key> <string>PSToggleSwitchSpecifier</string> <key>Title</key> <string>Open To Top Location</string> <key>Key</key> <string>open_top_location</string> <key>DefaultValue</key> <string>YES</string> <key>TrueValue</key> <string>YES</string> <key>FalseValue</key> <string>NO</string> </dict> 最终结果应该是,如果我要求“open_to_top_location”,我会得到一个YES,而不是根本没有,直到第一次用户打开设置应用程序。 有任何想法吗?

删除所有CALayer的子层

我在删除图层的所有子图层时遇到了问题。 我目前手动执行此操作,但会带来不必要的混乱。 我在google上发现了很多这方面的话题,但是没有答案。 我试图做这样的事情: 用于(rootLayer.sublayers中的CALayer *图层) { [layer removeFromSublayer]; } 但它没有工作。 此外,我试图将rootLayer.sublayers克隆到单独的NSArray,但结果是相同的。 有任何想法吗? 编辑: 我认为现在可行,但我错了。 它适用于CALayers,但它不适用于CATextLayers。 有任何想法吗?

如何使用NSLog进行debugging(@“iPhone模拟器内部”)?

我习惯于编程,并可以看到日志消息。 我知道你以前可以在debuggingCocoa应用程序时使用NSLog()来查找消息。 在iPhone Xcode开发环境中进行编码时,“跟踪”消息的最佳方式是什么?

将子视图控制器链接到故事板中的父视图控制器

您可以将子视图控制器与Storyboard中的自定义容器视图控制器关联吗? 我可以将子视图控制器链接到选项卡视图控制器,并且可以将一个视图控制器链接到导航控制器。 我必须做什么容器风险投资接受儿童风险投资?