所以Apple在Xcode 6的发行说明中说我们现在可以直接使用XCTest进行异步测试.
任何人都知道如何使用Xcode 6 Beta 3(使用Objective-C或Swift)?我不想要已知的信号量方法,而是新的Apple方式.
我搜索了发布的笔记和更多,但我一无所获.XCTest标头也不是非常明确.
我需要定义一个可以在使用某种Objective-c类型的类中调用的协议
但这样做不起作用:
enum NewsCellActionType: Int {
case Vote = 0
case Comments
case Time
}
@objc protocol NewsCellDelegate {
func newsCellDidSelectButton(cell: NewsCell, actionType: NewsCellActionType)
}
Run Code Online (Sandbox Code Playgroud)
你得到他的错误
Swift enums cannot be represented in Objective-C
Run Code Online (Sandbox Code Playgroud)
如果我没有将@objc标记放在我的协议上,那么只要在采用协议并从Objective-C类型类(如UIViewController)继承的类中调用它,它就会崩溃应用程序.
所以我的问题是,我应该如何使用@objc标签声明并传递我的枚举?
从今天早晨开始,我面临着一个奇怪的生产力破坏问题.无法通过属性编辑器编辑没有预填充属性的属性.(例如,边距)我每次都需要在视图和XML编辑器之间切换,以实现世界上最小的变化,因为我只能从XML中进行更改.
我尝试了所有的东西(重启eclipse,在字段中点击组合等等).真烦人
属性编辑器:

更新:听起来像是与Mountain Lion有关的问题,所以我们必须等待ADT插件更新?
我希望获得与iOS 7的新iTunes远程更新相同的效果UILabel.
如果你看这个屏幕:
(右边的那个)你会注意到UILabel文字颜色是没有黑色面具的背景模糊专辑封面.
目前我有透明的UILabeltextColor(http://cl.ly/SInK),我的代码类似于https://github.com/robinsenior/RSMaskedLabel
我的第一个假设是拥有这样的视图层次结构
UIImageView (Light blurred image)
|
UIImageView/UIView (Dark blurred image or just a dark mask for the superview)
|
UILabel (And all my other view).
Run Code Online (Sandbox Code Playgroud)
我想UILabel在第一个UIImageView上有一个透明的文本颜色,忽略第二个/ Mask).
我无法围绕解决方案来实现这一效果.
基本上我在Swift中使用AssetsLibrary框架,我怎么能将stop指针的值修改为NO/False/0(我甚至不知道它应该是什么值除外)?
self.library.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupSavedPhotos), usingBlock: {(group: ALAssetsGroup!, stop: CMutablePointer<ObjCBool>) in
},
failureBlock: {(error: NSError!) in
})
Run Code Online (Sandbox Code Playgroud)
我应该能够访问该值并使用unsafePointer修改它,但我似乎无法正确编写闭包.
首先,我知道我不应该使用SQLite数据库来存储图像,但我只存储非常小的网站图标.
我的问题是我尝试将这些favicon插入数据库(似乎工作),我将favicon转换NSData为-tiffrepresentation方法,NSimage然后将其插入我的数据库到blob列:
NSImage *favico = [webview mainFrameIcon];
[appDelegate insertBookmark:[titleField stringValue] url:[urlfield stringValue] data:[favico TIFFRepresentation]]
Run Code Online (Sandbox Code Playgroud)
SQLite方法如下所示:
-(void)insertBookmark:(NSString *)title url:(NSString *)url data:(NSData *)data
{
NSData *imagedata = [[NSData alloc]initWithData:data];
sqlite3 *database;
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
NSString *query = [NSString stringWithFormat:@"INSERT INTO Bookmarks (title, url, image) VALUES ('%@', '%@', '%@')",title, url, data];
const char *querychar = [query UTF8String];
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, querychar, -1, &statement, NULL) == SQLITE_OK)
{
int row = 3;
sqlite3_bind_blob(statement, row, …Run Code Online (Sandbox Code Playgroud) WebView有一个名为的方法
- (void)webView:(WebView *)sender runOpenPanelForFileButtonWithResultListener:(id < WebOpenPanelResultListener >)resultListener
Run Code Online (Sandbox Code Playgroud)
但是它上面几乎有0个文档和细节.在里面我显示一个打开的文件对话框并获取所选的文件名.
像这样
- (void)webView:(WebView *)sender runOpenPanelForFileButtonWithResultListener:(id < WebOpenPanelResultListener >)resultListener
{
NSOpenPanel* openDlg = [NSOpenPanel openPanel];
[openDlg setCanChooseFiles:YES];
[openDlg setCanChooseDirectories:NO];
// process the files.
if ( [openDlg runModal] == NSOKButton )
{
NSString* fileString = [[openDlg URL]absoluteString];
[resultListener chooseFilename:fileString];
}
}
Run Code Online (Sandbox Code Playgroud)
但是之后 ?
我该怎么办 ?在网站上,它显示我选择了一个文件,但是当您点击上传时,网站只返回错误,就像没有上传文件一样.我应该编写处理文件上传的代码还是什么?
我有点失落......
编辑:
事实上我让它工作....只需改变这里的代码:Cocoa webkit:如何在webkit中获取文件上传/文件系统访问权限,因为某些部分已被弃用
- (void)webView:(WebView *)sender runOpenPanelForFileButtonWithResultListener:(id < WebOpenPanelResultListener >)resultListener
{
// Create the File Open Dialog class.
NSOpenPanel* openDlg = [NSOpenPanel openPanel];
// Enable …Run Code Online (Sandbox Code Playgroud) 当我添加一个今日扩展我的应用程序突然增加了很多...所以我做了一个快速检查,看看脂肪来自哪里.看起来.apex是13MB,'Assets.car'文件甚至比我的主应用程序(+ 8MB)还要大.问题是,我在扩展程序中的资产目录中只使用了1个图像.
我在Xcode中检查过,我的主要应用程序资产目录没有被切换为使用扩展名复制,但听起来确实如此.
这是正常的吗?你知道怎么做才能减少最终的.apex尺寸吗?
谢谢!
我想这可能是Beta 3中的一个错误,因为NavigationView都坏了。但是这样的观点:
struct GenreBadge : View {
@EnvironmentObject var store: Store<AppState>
let genre: Genre
var body: some View {
NavigationLink(destination: MoviesGenreList(genre: genre).environmentObject(store)) {
RoundedBadge(text: genre.name)
}
}
}
Run Code Online (Sandbox Code Playgroud)
没有触发导航堆栈中的任何推送。该视图似乎根本不是交互式的。如果有人发现解决方法会很好,除非Apple记录了此行为,否则我认为它会在Beta 4之前失效。
我正在尝试实现自己的自动补全系统(结果是从sqlite数据库中提取的)
我已经设置了NSTextField和适当的委托。每当NSTextField中的文本更改时,它都会调用- (void)controlTextDidChange:(NSNotification *)aNotification方法
它工作正常,在这种方法中,我以编程方式构建菜单,最后使用该代码调用/显示了它:
NSRect frame = [address frame];
NSPoint menuOrigin = [[address superview] convertPoint:NSMakePoint(frame.origin.x, frame.origin.y+frame.size.height-25)
toView:nil];
NSEvent *event = [NSEvent mouseEventWithType:NSLeftMouseDown
location:menuOrigin
modifierFlags:NSLeftMouseDownMask // 0x100
timestamp:0
windowNumber:[[address window] windowNumber]
context:[[address window] graphicsContext]
eventNumber:0
clickCount:1
pressure:1];
[NSMenu popUpContextMenu:menu withEvent:event forView:address];
Run Code Online (Sandbox Code Playgroud)
哪里address是我NSTextField和menu我的NSMenu。问题在于菜单是焦点所在,因此您只能在文本字段中键入1个字母,然后再也不能键入文本,因为菜单现在是第一响应者。
我的问题是如何显示菜单并保持文本字段为第一响应者,以便您可以在字段中每次更改文本时重新加载菜单时键入文本。
实际上,它应该像在Safari或chrome地址栏中。