标签: xcode4

Xcode 4 Xcode 3用户的Xcode提示和技巧

正如大多数人可能已经看到的那样,Xcode 4已于今天正式发布.现在我知道很多开发人员一直在使用预览版本,如果人们可以发布他们使用这些版本学到的任何好的提示,技巧或键盘快捷方式,现在他们不再使用NDA .这对于那些从Xcode 3升级的人来说特别有用(就像我一样,现在下载).

注意:Apple已经发布了一个" 过渡指南 ",其中包含了从版本3到版本4的大量内容,但我敢打赌,那里有许多人都学到的很棒的技巧.

iphone ios xcode4

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

如何在Xcode4中调试"发送到deallocated instance的消息"?

我按下了ALT + CMD + R并在Arguments> Environment Variables中激活了NSZombieEnabled.此外,我在诊断>内存管理>启用僵尸对象中激活它.

但是,当我构建并运行时,在某些时候我的应用程序崩溃,在控制台中给我这个无用的消息:

*** -[CALayer retainCount]: message sent to deallocated instance 0x656b260
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪也没用.我将细节级滑块一直向右移动.线程1只是告诉我这个:

截图

一切都是系统所有,并没有一行与我的应用程序相关.所以很明显NSZombiesEnabled不能像在Xcode 3中那样工作,它停在死对象上.

有没有办法弄清楚哪个 CALayer过早解除分配?

更新:因此,在建立和运行大约100次后突然问题消失了!它完全消失了!最好的部分:我没有以任何方式修改我的代码!在中间我用clean命令清理了build文件夹和项目几次,并在Simulator中删除了几次app.

更新2:幸运的是问题再次出现.而现在似乎持久.幸运的是,因为我更喜欢找到根本原因,而不是随意地烦扰用户.

更新3:最后偶然发现它:

startButton = newBttn;
Run Code Online (Sandbox Code Playgroud)

本来应该:

self.startButton = newBttn;
Run Code Online (Sandbox Code Playgroud)

startButton是一个保留属性,在-dealloc我发布了它.因此,它在大多数(但不是全部)情况下得到了过度释放,在视图消失之后它崩溃了,给出了奇怪的CALayer retainCount消息.

Zombies Instrument(CMD + I)最终指出它与按钮有关.只是不知道为什么和在哪里.

Clang Static Analyzer没有抱怨这个明显的故障.

iphone xcode memory-management ios xcode4

49
推荐指数
2
解决办法
4万
查看次数

Xcode 4:从命令行运行测试(xcodebuild)?

我在Xcode 4中创建了一个全新的iOS项目,并包含了单元测试.默认应用程序有2个目标,主应用程序和单元测试包.使用"产品>测试"(Command-U)构建应用程序,构建单元测试包,启动iOS模拟器并运行测试.现在,我希望能够从命令行执行相同的操作.命令行工具(xcodebuild)没有"测试"操作,但似乎我应该能够直接构建单元测试包目标,因为它取决于应用程序本身.但是,运行:

xcodebuild -target TestAppTests -sdk iphonesimulator4.3 -configuration Debug build
Run Code Online (Sandbox Code Playgroud)

给出以下消息:

/Developer/Platforms/iPhoneSimulator.platform/Developer/Tools/Tools/RunPlatformUnitTests:95: warning: Skipping tests; the iPhoneSimulator platform does not currently support application-hosted tests (TEST_HOST set).
Run Code Online (Sandbox Code Playgroud)

这似乎是一个谎言,因为当我从GUI运行Command-U时,为我的单元测试包目标设置了测试主机.我之前看过有关逻辑测试和应用程序测试之间分离的帖子,但似乎Xcode 4消除了这种区别.我是如何从命令行运行测试的?

xcode unit-testing xcodebuild ocunit xcode4

47
推荐指数
4
解决办法
3万
查看次数

Xcode将在模拟器上运行app,但不在设备上运行

尝试在我的设备上运行应用程序时收到以下错误.

error: failed to launch '/Users/michael/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos/Word Processor.app/Word Processor' -- No such file or directory (/Users/michael/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos/Word Processor.app/Word Processor)
Run Code Online (Sandbox Code Playgroud)

该应用程序在模拟器中运行良好.当我尝试在设备上进行调试时,它似乎会复制应用程序(我可以看到图标),但随后会停止上面的消息.Xcode表示它正在我的iPod上运行应用程序,但我的iPod上什么也没发生.

当我点击应用程序时,应用程序似乎启动,但似乎缺少资源.我的其他项目工作正常.我需要更改哪些设置才能使其正常工作.查看错误消息,它似乎在我的Mac中查找应用程序.但这是没有意义的,因为我试图在我的第四代iPod touch上运行它.我正在使用Xcode 4.3.1和iOS 5.1

debugging xcode ios xcode4

47
推荐指数
5
解决办法
6万
查看次数

XCode 4中的标题搜索路径

我想添加一个标题搜索路径的路径.但是在构建设置中,当我双击标题搜索路径时...它没有弹出一个新窗口我可以输入..我做错了什么?

xcode xcode4

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

Objective C静态类变量

我是Objective C的新手,正在读一本名为"Visual Quickstart Guide:Objective-C"的书,作者是Steven Holzner,Peachpit出版社

在第6章:面向对象编程中,有一节名为Using Class Variables,他写道:

您可以创建用于类的类变量,但是有一个问题:该类的每个对象都共享同一个变量,因此如果一个对象更改了一个类变量,那么该变量将针对所有对象进行更改.您可以使用static关键字创建类变量.类变量通常很有用:例如,您可以使用类变量来跟踪程序中创建的特定类的对象数.你会在这个任务中做到这一点.

并说要输入以下代码:

#import <stdio.h>
#import <Foundation/NSObject.h>
@interface TheClass: NSObject
static int count; //error: cannot declare variable inside @interface or @protocol
+(int) getCount;
@end
...
Run Code Online (Sandbox Code Playgroud)

这段代码在Xcode 4中给出了一个错误:

无法在@interface或@protocol中声明变量

这本书错了还是我做错了什么?

xcode objective-c xcode4

46
推荐指数
4
解决办法
10万
查看次数

在Xcode代码段中多次替换参数

我可以创建一个自定义代码段,其中包含在代码中多次替换的参数吗?

我尝试过类似的东西:

<#class#> instanceOf<#class#>;
Run Code Online (Sandbox Code Playgroud)

但是class当我插入代码段并写入第一个参数时,它不会替换两个占位符.

xcode code-snippets xcode4

46
推荐指数
2
解决办法
3904
查看次数

Xcode 4插件开发

我一直在寻找这个地方,但我找不到任何东西.有谁知道在哪里可以找到有关如何创建Xcode 4插件的文档?

xcode plugins xcode4

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

xcodebuild使用哪个版本的Xcode?

我在同一台机器上安装了Xcode 3.2和Xcode 4.0.2,它使用Hudson进行自动CI(持续集成)构建.当我说两者都已安装时,我的意思是我可以同时或交替使用Xcode 3和Xcode 4.它们都存在于机器上,因为我为Xcode 4进行了自定义安装而没有覆盖Xcode 3(据说).

  • 对'xcodebuild'的命令行调用是否调用Xcode 3或Xcode 4?
    • 这个问题甚至有意义吗?在这个主题上可能知道或可能不知道的人要求一些项目用3构建,有些项目用4构建.
  • 如果是这样,我如何强迫它使用3或4?
    • 或者,是否有一个单独的位置存储Xcode 3的'xcodebuild'与存储Xcode4的'xcodebuild'的位置?如果有,我可以在构建脚本中使用不同的路径.

continuous-integration hudson xcodebuild xcode3.2 xcode4

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

xcode4:链接器错误:找不到选项的目录

我的配置文件构建出现了这个错误(调试版本没问题).

{Directory not found for option '-L../../../Mac/Profile/lib [full path of that directory]

Library not found for -lMyLib}
Run Code Online (Sandbox Code Playgroud)

当我检查路径时,目录存在,lib文件libMyLib.a也存在.我的用于Profile构建的库搜索路径包括该目录$(SRCROOT)/../../../ Mac/Profile/lib.我还确保该库是在配置文件设置下构建的.

这只发生在配置文件构建中.

我真的很想得到一些帮助,虽然这可能是一个简单的问题.

谢谢!

编辑:自己找到解决方案 解决问题:在我的链接器路径中,有两个目录条目.第二个被双引号包围,而第一个则没有.Xcode4似乎将它们连接成一个目录条目,显然这是垃圾.删除引号后,链接器错误消失了.

macos linker build xcode4

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