在以前的版本中Xcode,可以创建一个键绑定来删除当前行.有不同的解决方案,例如这里描述它们:
http://bigdiver.wordpress.com/2009/09/11/configure-homeend-key-bidings-on-mac-os-x/
http://www.betadesigns.co.uk/Blog/2010/02/03/custom-xcode-shortcuts/
所有解决方案都包括修改其中一个文件:
〜/ Library/Application Support/Xcode/Key Bindings/*.pbxkeys
~/Library/KeyBindings/DefaultKeyBinding.dict
~/Library/KeyBindings/PBKeyBinding.dict
现有快捷方式的一个很好的资源Xcode 4是http://cocoasamurai.blogspot.com/2011/03/xcode-4-keyboard-shortcuts-now.html.有关删除的内容很多,但"删除行"没有.
但是,这些解决方案从那时起就无效了Xcode 4.
更新:问题仍然是相同的Xcode 5.1.1
更新:问题仍然是相同的Xcode 6.1 GM Seed 2
更新:截至2016年4月26日仍适用于Xcode版本7.3(7D175)
更新:六年后,Xcode 8.3内置了一个解决方案.见下面的答案.
Apple文档说明:
要参与外观代理API,请使用UI_APPEARANCE_SELECTOR在标头中标记外观属性选择器.
在Objective-C中,可以使用以下方法注释属性UI_APPEARANCE_SELECTOR:
@property (nonatomic, strong) UIColor *foregroundColor UI_APPEARANCE_SELECTOR;
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Swift中做同样的事情?
我定义了一个简单的类:
class MyClass {
var name:String?
required init() {
println("init")
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在这样的扩展中添加一个新的初始化程序:
extension MyClass {
convenience init(name: String) {
self.init()
self.name = name
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常.
但是只要我在协议中定义新的初始化程序:
protocol MyProtocol {
init(name:String)
}
Run Code Online (Sandbox Code Playgroud)
并让我的扩展确认该协议:
extension MyClass : MyProtocol {
convenience init(name: String) {
self.init()
self.name = name
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
初始化程序要求'init(name :)'只能通过
required非final类'MyClass'定义中的初始化程序来满足
这里发生了什么?
(顺便说一句:我不能上课final,因为这只是一个更复杂的用例的摘录.)
NSArray必须- (NSUInteger)indexOfObject:(id)obj inSortedRange:(NSRange)r options:(NSBinarySearchingOptions)opts usingComparator:(NSComparator)cmp确定排序数组中新对象的插入位置.
在纯Swift中执行此操作的最佳和高性能方法是什么?
有点像:
var myArray = ["b", "e", "d", "a"]
myArray.sort { $0 < $1 }
// myArray is now [a, b, d, e]
myArray.append("c")
myArray.sort { $0 < $1 }
// myArray is now [a, b, c, d, e]
Run Code Online (Sandbox Code Playgroud)
我想找出正确的位置并插入元素,而不是追加新元素然后对数组进行排序:
let index = [... how to calculate this index ??? ...]
myArray.insert("c", atIndex: index)
Run Code Online (Sandbox Code Playgroud) iOS 7引入了新的用户配置来禁用特定应用的蜂窝数据.它可以在"设置" - >"蜂窝"中配置,然后向下滚动.

您将为每个已安装的应用找到一个开关,并可以查看它消耗了多少蜂窝数据.
如何以编程方式测试我的应用程序的开关是否已打开?那有API吗?我可以确定我的应用程序通过蜂窝网络使用了多少数据?
我不是要求获取所有应用程序的值.我只对我的应用程序使用感兴趣.
UIWindow有私有方法_autolayoutTrace,可以帮助您找到暧昧的布局.这非常好,方便,输出如下:
*<UIWindow:0x13436fd0> - AMBIGUOUS LAYOUT
| *<UIView:0xd5e0b30>
| | *<PbJellyContentContainerView:0xd5e0ff0>
| | | *<UIView:0x20710ee0>
| | | | *<PbMapContainerView:0x20710c90>
| | | | | <MKMapView:0x2070df70>
| | | | | | <UIView:0xd1cca20>
| | | | | | | <MKBasicMapView:0xd1cd020>
....
Run Code Online (Sandbox Code Playgroud)
我的问题不是任何含糊不清的问题.它是关于某些观点前面的星号.它的含义是什么?
我的猜测是它标记了所有使用自动布局的视图.但是系统如何确定这个呢?
更新:
似乎星号标记所有具有至少一个约束集或具有至少具有一个约束集的子视图的视图.
设置translatesAutoresizingMaskIntoConstraints为false而不设置约束不会给出星号.
WWDC 2012会议208是关于UIKit状态保存和恢复.最后,提到了调试工具"Restrospector".它应该可视化磁盘上的持久状态.
状态本身持久保存到"已保存的应用程序状态"目录中的"data.data"文件.当你打开它时,它是一个XML文件,但它的一部分不是人类可读的.
我确实在Apple开发者论坛和开发者网站上搜索过,但也只有人要求使用这个工具,但是没有人有答案.也许Stack Overflow可以提供帮助吗?
这是允许的,为什么?
void (^bar)(NSNumber *) = ^(NSNumber *number) {
NSLog(@"Value is %@, class is %@.", number, [number class]);
};
bar([NSNumber numberWithInt:10]);
void (^foo)(id) = bar;
foo([NSDate date]);
Run Code Online (Sandbox Code Playgroud)
输出是:
Value is 10, class is __NSCFNumber.
Value is 2012-05-17 18:54:14 +0000, class is __NSDate.
Run Code Online (Sandbox Code Playgroud)
我找不到任何解释这个问题的相关内容.您能否提供涵盖此目标的目标c块规范的链接?
目前我正在开发基于块的UITableView子类,如果我可以安全地使用它,它会使事情变得更容易.
有没有办法配置iOS模拟器应用程序目录?
我正在使用 Xcode 4.3,目前正在使用
/Users/<Username>/Library/Application Support/iPhone Simulator/5.1/Applications/
Run Code Online (Sandbox Code Playgroud)
当我在 Xcode 中运行应用程序时,它会被复制到子目录中:
/Users/<Username>/Library/Application Support/iPhone Simulator/5.1/Applications/<APP-UUID>/<AppName>.app
Run Code Online (Sandbox Code Playgroud)
“文档”、“库”和“tmp”目录位于应用程序本身旁边。我在应用程序中执行的任何文件访问都使用此目录作为根目录。
提出这个问题的原因是我想将文件保存在不是我的启动卷的 SSD 上。所以任何硬链接都不起作用。
我还没有看过 Xcode 4.4 或 4.5,但我也可以使用它们。
更新:
实际上软链接是有效的:
首先删除
rm -R /Users/<Username>/Library/Application Support/iPhone Simulator/5.1/Applications/
Run Code Online (Sandbox Code Playgroud)
然后创建软链接
ln -s /Volumes/<YourSSDVolume>/Applications/ /Users/<Username>/Library/Application Support/iPhone Simulator/5.1/Applications/
Run Code Online (Sandbox Code Playgroud)
感谢 John.K.Doe 强迫我再试一次;)
Objective-C有两种方法来测试对象是否是特定类或子类的实例:
- (BOOL)isMemberOfClass:(Class)aClass;
Run Code Online (Sandbox Code Playgroud)
返回一个布尔值,指示接收者是否是给定类的实例.
- (BOOL)isKindOfClass:(Class)aClass;
Run Code Online (Sandbox Code Playgroud)
返回一个布尔值,指示接收者是给定类的实例还是从该类继承的任何类的实例.
在Swift中,我可以使用is运算符测试后者:
if myVariable is UIView {
println( "I'm a UIView!")
}
if myVariable is MyClass {
println( "I'm a MyClass" )
}
Run Code Online (Sandbox Code Playgroud)
如何测试实例是否是Swift中的特定类或类型(即使在处理没有NSObject子类时)?
注意:我知道func object_getClassName(obj: AnyObject!) -> UnsafePointer<Int8>.
swift ×4
ios ×3
objective-c ×3
xcode ×2
arrays ×1
initializer ×1
ios7 ×1
iphone ×1
macos ×1
sorting ×1
uiappearance ×1
uikit ×1
xcode4 ×1
xcode4.3 ×1
xcode8 ×1