所以我最终把我的Objective-C/Cocoa书籍除掉了......原来他们已经快七岁了!使用Objective-C 2.0现在有垃圾收集,关于内存管理的章节有多重要?
垃圾收集有多大区别?
我知道你们中的许多人都经历过相同的情况,你们正在敲打墙壁,想知道你的应用程序出了什么问题,却发现你忘了保存你的Interface Builder更改.
好吧,这从来没有发生在我身上,因为出于某种原因,Xcode会提示我在构建时保存Interface Builder中的任何更改.一位同事和我正试图弄清楚如何在他的机器上改变这一点,但没有成功.我必须在iphone开发生命的早期阶段做一些事情来配置它.
有谁知道如何将IB与Xcode链接,以便在构建期间提示保存对IB文件的更改?
假设我有自己的elisp代码~/bin/hello.el.
该~/.emacs文件具有以下代码以hello.el在启动时运行.
(add-to-list 'load-path "~/bin/elisp")
(require 'hello)
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误消息.
警告(初始化):加载`/Users/smcho/.emacs'时发生错误:
错误:未提供必需的功能"hello"
这有什么问题?
我想创建一个子类NSWindow.这个子类需要在使用之前初始化一些成员变量.在目标c中捕获初始化的最佳方法是什么?我发现init很少被调用的方式允许我这样做. NSWindow有一些我需要覆盖的初始化向量.我需要覆盖它们中的每一个吗?
为什么这不起作用:
NSInteger sectionLocation = 0;
NSInteger sectionTitles = 1;
NSInteger sectionNotifications = 2;
switch (section) {
case sectionLocation:
//
break;
case sectionTitles:
//
break;
case sectionNotifications:
//
break;
default:
//
}
Run Code Online (Sandbox Code Playgroud)
我得到这个编译错误:
错误:case标签不会减少为整数常量
是不是可以像这样使用NSInteger?如果是这样,是否有另一种方法在switch语句中使用变量作为案例?sectionLocation等具有可变值.
我今天安装了Python 2.7,使用:
./configure --prefix=/home/zhanwu/local --enable-shared --enable-profiling --with-pydebug
make install
Run Code Online (Sandbox Code Playgroud)
然后我在每个函数调用后继续在屏幕上得到类似"[37745 refs]"的内容:
[zhanwu@cluster ~]$ ~/local/bin/python
Python 2.7.1 (r271:86832, Jun 16 2011, 17:45:05)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
[37745 refs]
>>> print 'test'
test
[37745 refs]
>>> sys.exit()
[18048 refs]
[zhanwu@cluster ~]$
Run Code Online (Sandbox Code Playgroud)
这些数字是什么意思?这里有什么问题,我可以摆脱它们吗?
uname -a结果:
[zhanwu@cluster ~]$ uname -a
Linux cluster.xxx.xxx.xxx 2.6.18-128.1.14.el5 #1 SMP Wed Jun 17 06:38:05 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud) 我有一个编译和运行良好的项目(即使使用"build for archive"命令构建).
但是,当我想存档它(用于MAS发布)时,我收到以下错误:
命令/ Developer/usr/bin/strip失败,退出代码为1/Developer/usr/bin/strip:由xxx中无法删除的间接符号表条目引用的符号
其中xxx是我的项目(框架)的子项目.
可能是什么问题?(我检查过,一切都正确签名)
我正在尝试将测试添加到mac应用程序.我正在使用XCTest框架.当我运行测试(cmd + U)时,我收到"测试失败"并在控制台中看到:
2013-10-15 13:22:56.354 8tracks Radio[40560:303] Error loading /Users/victor/Library/Developer/Xcode/DerivedData/Musica-dhxbqwburbddtietormguodcwoqt/Build/Products/Test/MusicaTests.octest/Contents/MacOS/MusicaTests: dlopen(/Users/victor/Library/Developer/Xcode/DerivedData/Musica-dhxbqwburbddtietormguodcwoqt/Build/Products/Test/MusicaTests.octest/Contents/MacOS/MusicaTests, 262): no suitable image found. Did find:
/Users/victor/Library/Developer/Xcode/DerivedData/Musica-dhxbqwburbddtietormguodcwoqt/Build/Products/Test/MusicaTests.octest/Contents/MacOS/MusicaTests: open() failed with errno=1IDEBundleInjection.c: Error loading bundle '/Users/victor/Library/Developer/Xcode/DerivedData/Musica-dhxbqwburbddtietormguodcwoqt/Build/Products/Test/MusicaTests.octest'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?干杯!
如果我创建一个名为"name"的非可选字符串属性的实体,我会将"Untitled"作为默认值.我该如何本地化这个默认值?
我可以继承实体,并使用NSLocalizedStringin awakeFromInsert来做到这一点.但我想知道是否有另一种方式.
编辑:
如果这是唯一的方法,那么我很好.只是好奇.
我有一个正在运行的iPhone应用程序,我正在尝试将其更改为Xcode 3.2中的通用应用程序.我只想为iPad创建新的xib文件.
所以我只需展开Targets点击"Project\Upgrade Current Target for iPad"并选择"One universal application".
在我的应用程序上我有很多xib文件,我想为同一个控制器创建新的iPad xib文件,例如我想将mainpage-iPad.xib定位到控制器mainpage.m
在IB的主页-iPad.xib我将类设置为"主页",这似乎是不够的,每当我运行ipad模拟器时,我总是将视图调整为iphone.
你能指出我做错了什么,并建议将xib文件定位到我的控制器的正确方法.
谢谢
objective-c ×4
cocoa ×3
iphone ×3
macos ×3
xcode ×3
cocoa-touch ×1
core-data ×1
emacs ×1
ios ×1
ipad ×1
localization ×1
nsinteger ×1
python ×1
xctest ×1
xib ×1