当它处于测试阶段时,我切换到了Xcode 4,而且我大部分时间都在编辑现有的代码,所以直到现在才考虑这么多......
Apple的文件模板似乎已经改变了编码方法的惯例.例如,一个pre-Xcode 4 dealloc方法看起来像这样:
- (void)dealloc {
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
在Xcode 4中,他们现在使用这种风格:
- (void)dealloc
{
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
作为一个狂热的完美主义者和烦躁的人,这让我很生气!我是在Xcode本身的前一个风格上长大的,现在我发现每次创建一个模板时都要经过每个模板,将支架放回正确的位置!
请告诉我这是一个默认选项,我可以改变......或者我必须改变自己的编码风格来匹配(或者更糟糕的是,"学会忍受它"[ 颤抖 ]!).
我正在使用Xcode 7.0 beta 4,最近将我的单个Main.storyboard拆分成一系列故事板引用连接的故事板(Xcode 7中新增了).
构建时,我收到以下"Interface Builder Storyboard Linker Error":
/* com.apple.ibtool.errors */
: error: The file “Info.plist” couldn’t be saved in the folder “Pages.storyboardc”.
Underlying Errors:
Description: The operation couldn’t be completed. Not a directory
Failure Reason: Not a directory
Run Code Online (Sandbox Code Playgroud)
我怎样才能理解这个错误?
故事板参考是通过选择原始故事板中的场景并选择编辑器>重构到故事板...来创建的.我遇到的上一个问题是故事板链接器抛出了不同类型的错误:
/* com.apple.ibtool.errors */
: error: Deploying Storyboard References to iOS 8.0 requires that your storyboards do not
share any view controller identifiers. Browser.storyboard and Pages.storyboard
both contain a view controller with identifier "PagesViewController".
Run Code Online (Sandbox Code Playgroud)
事实证明,使用"Refactor to …
我正在为iPad编写一个GLPaint-esque绘图应用程序,但是我遇到了绊脚石.具体来说,我正在尝试实现两件事:
1)可以绘制的背景图像.
2)绘制临时形状的能力,例如你可以绘制一条线,但最终的形状只有在手指抬起后才能进行.
对于背景图像,我理解的想法是将图像绘制到VBO中并在每个线条绘制之前绘制它.这很好,但现在我需要添加绘制临时形状的能力...将kEAGLDrawablePropertyRetainedBacking设置为YES(如在GLPaint中),临时显然不是临时的!将保留的后备属性设置为NO对于临时对象非常有用,但现在我的先前写意线不会被保留.
这里最好的方法是什么?我是否应该使用多个EAGLLayer?我发现的所有文档和教程似乎都表明大多数事情应该可以通过单个层实现.他们还说保留支持应该总是设置为NO.有没有办法在这样的配置中使用我的应用程序?我尝试将每个绘图点存储到一个不断扩展的顶点数组中,以便每帧重绘一次,但是由于绘制的精灵数量太多而无法正常工作.
我真的很感激这方面的任何帮助,因为我在网上搜索并没有发现任何东西!
我有一个NSSet包含数千个NSValue对象(包装CGPoints).我想很快找到一个给定的CGPoint值是否存在于NSSet.在我看来member:,一个NSSet可能在这里完成工作的方法,除了它使用检查相等性isEqual:.NSValue对象使用isEqualToValue:,所以当我执行代码时:
[mySet member:valueToCheck];
Run Code Online (Sandbox Code Playgroud)
它实际上导致Xcode崩溃.
1)是否有某种方法可以使用自定义相等性检查来使NSValue对象工作?
2)这是否是最好的方法(即首先是member:足够快)?场景是我有一个NSSet包含大量代表屏幕(iPad)像素的点.后来我需要以每秒数千点的速度轰击那一组,看看它们是否存在于集合中.我的方法似乎很难实现这一点.我想创建类似于一个巨大的二维位数组的东西,每个索引代表屏幕上的一个像素.一旦我知道我正在测试的那个点,我就可以直接跳到阵列中的那一点并检查1或0 ......这听起来好不好?
谢谢
我很确定我已经知道了答案,但我想我还是会问.我只是为了确保我的变量是我希望它们在某个点上的位置而生病和厌倦了.
任何人都知道在没有断点/日志的情况下运行变量的方法吗?
谢谢!
我正在开发一个使用子类的iPhone应用程序,UIManagedDocument并将其文档存储在iCloud上.
在改变我的核心数据模型/方案(添加一个新的模型版本 - 就像我在过去几周里曾多次)之前,一切正常.我添加了一个新属性并更改了其中一个现有属性的数据类型.
现在,当我跑我的应用我似乎并没有能够加载我的文档用UIManagedDocument的-openWithCompletionHandler:.我可以创建新文档并读/写.如果我将数据模型版本改回1,那么我可以阅读现有文档,但不能阅读新文档.
根据我的理解,我只对数据模型进行轻量级迁移,并且UIManagedDocument应该处理这个问题吗?
任何建议将不胜感激!
我有一个懒惰创建对象的类,并将其存储为弱属性.其他类可能会请求此对象,但显然必须对其进行强引用以防止对象被释放:
// .h
@interface ObjectManager
@property(nonatomic, weak, readonly) NSObject *theObject;
@end
// .m
@interface ObjectManager ()
@property(nonatomic, weak, readwrite) NSObject *theObject;
@end
@implementation ObjectManager
- (NSObject *)theObject
{
if (!_theObject) {
_theObject = [[NSObject alloc] init];
// Perform further setup of _theObject...
}
return _theObject;
}
@end
Run Code Online (Sandbox Code Playgroud)
当方案是Xcode被设置为为Debug构建时,一切正常 - 一个对象可以调用objectManagerInstance.theObject并返回theObject.
当方案设置为Release版本时,theObject返回nil:
// Build for Debug:
NSObject *object = objectManagerInstance.theObject;
// object is now pointing to theObject.
// Build for Release:
NSObject *object …Run Code Online (Sandbox Code Playgroud) weak-references objective-c release-builds ios automatic-ref-counting
我正在尝试在背景上创建一个滑动.我有三种不同颜色的背景.我做了一个按钮,当我点击我的按钮时,我的背景变为下一个场景.我想改变这个,我想向左或向右滑动我的拇指来改变背景而不必点击按钮.我怎么做到这一点.
这里有一些更多的细节
我的视图控制器是
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Run Code Online (Sandbox Code Playgroud)

我有一个计数器,counter++每次一个图像接触另一个图像.
现在我想做的是:if counter=2; do something,但我总是得到一个错误:
赋值从整数中生成指针而不进行强制转换
这是代码的一部分:
-(void)checkcollision {
if(CGRectIntersectsRect(flakeImage.frame, viewToRotate.frame)) {
counter++;
}
}
-(void)checknumber {
if(counter=2) {
viewToRotate.alpha=0;
}
}
Run Code Online (Sandbox Code Playgroud) ios ×5
objective-c ×3
xcode ×3
ipad ×2
iphone ×2
animation ×1
brackets ×1
cocoa-touch ×1
coding-style ×1
conventions ×1
core-data ×1
counter ×1
drawing ×1
equality ×1
ibtool ×1
icloud ×1
if-statement ×1
ios4 ×1
methods ×1
migration ×1
nsset ×1
opengl-es ×1
storyboard ×1
variables ×1
xcode4 ×1
xcode6 ×1