我安装了Mogenerator.现在我该怎么办?我该如何使用它?
我遇到的第一个问题是我不知道它安装在哪里.在安装过程中,它只允许我选择要安装它的硬盘驱动器,而不是目录.最自然的位置是Applications文件夹,但它不存在.
接下来,自述文件(我在网上找到)说明:
通过注意保存*.xcdatamodel时,Xmo会工作.如果模型文件的Xcode项目项注释包含xmod,则会触发AppleScript,根据模型的文件名创建一个文件夹,并使用模型中的派生源代码文件填充它.然后,它将新文件夹作为组参考添加到项目中,并将所有源文件添加到项目中.
上述陈述有几个问题尚不清楚:
.xcdatamodel文件是使用mogenerator的唯一方法吗?有没有办法我可以手动运行mogenerator,以便重新生成生成的文件?如果我尝试运行以下代码:
photographer = photographer
Run Code Online (Sandbox Code Playgroud)
我收到错误:
为自己分配属性.
我想将属性分配给自己以强制photographer didSet块运行.
这是一个真实的例子:在2013年冬季斯坦福iOS课程(13:20)的"16. Segues and Text Fields"讲座中,教授建议编写类似如下的代码:
@IBOutlet weak var photographerLabel: UILabel!
var photographer: Photographer? {
didSet {
self.title = photographer.name
if isViewLoaded() { reload() }
}
}
override func viewDidLoad() {
super.viewDidLoad()
reload()
}
func reload() {
photographerLabel.text = photographer.name
}
Run Code Online (Sandbox Code Playgroud)
注意:我做了以下更改:(1)代码从Objective-C切换到Swift; (2)因为它在Swift中,我使用didSet属性的块而不是setPhotographer:方法; (3)而不是self.view.window我使用,isViewLoaded因为前者在访问view财产时错误地强迫视图加载; (4)该reload()方法(仅)为了简单起见而更新标签,因为它更接近我的代码; (5)IBOutlet添加了摄影师标签以支持这个更简单的代码; (6)由于我使用的是Swift,isViewLoaded()因为性能原因,检查不再存在,现在需要防止崩溃,因为IBOutlet被定义为UILabel!不UILabel? …
随着iOS 10的推出,似乎我们将在UITableView和UICollectionViews上默认启用预取.这意味着在用户实际看到它们之前,将获取未在屏幕上显示的单元格.
以下是一些相关方法:
nil如果单元格不可见".nil如果单元格不可见".所有这些都在他们的描述中特别提到"可见".随着在iOS 10中引入预取,我如何区分预取的单元与当前可见的单元?
换一种说法:
看起来UITableView或UICollectionView上没有任何新的API可以帮助解决这个问题.
我正在使用Xcode 7 XCTest中引入的UI测试API.在我的屏幕上,我有一个从网络加载的文本.
如果我只是用exists属性检查它,测试就会失败.
XCTAssert(app.staticTexts["Text from the network"].exists) // fails
Run Code Online (Sandbox Code Playgroud)
如果我首先将tap或任何其他事件发送到文本,它确实有效:
app.staticTexts["Text from the network"].tap()
XCTAssert(app.staticTexts["Text from the network"].exists) // works
Run Code Online (Sandbox Code Playgroud)
看起来如果我只是调用exists它立即评估它并失败,因为尚未从网络下载文本.但我认为当我调用该tap()方法时,它会等待文本出现.
有没有更好的方法来检查是否存在从网络传送的文本?
像(这段代码不起作用):
XCTAssert(app.staticTexts["Text from the network"].eventuallyExists)
Run Code Online (Sandbox Code Playgroud) 想象一下,我正在设计一个 SwiftUI 屏幕,要求用户输入用户名。屏幕将进行一些检查以确保用户名有效。如果用户名无效,则会显示错误消息。如果用户点击“关闭”,它将隐藏错误消息。
最后我可能会得到这样的结果:
enum UsernameLookupResult: Equatable {
case success
case error(message: String, dismissed: Bool)
var isSuccess: Bool { return self == .success }
var isVisibleError: Bool {
if case .error(message: _, dismissed: false) = self {
return true
} else {
return false
}
}
var message: String {
switch self {
case .success:
return "That username is available."
case .error(message: let message, dismissed: _):
return message
}
}
}
enum NetworkManager {
static func checkAvailability(username: String) -> UsernameLookupResult …Run Code Online (Sandbox Code Playgroud) 我有一个类型.Image和类的变量XCUIElement.像这样的东西:
var image = app.descendantsMatchingType(.Image).elementAtIndex(0)
有没有办法可以提取实际图像,以便将其与其他图像进行比较?
我试过caling value方法,但它返回一个字符串.将它投射到UIImage总是失败.
我在Yosemite上使用Xcode 7.我创建了一个新的OS X应用程序,它带有一个故事板.当我启动应用程序时,应用程序窗口很小.
在应用启动时设置默认窗口大小的最简单方法是什么?
理想情况下,我正在寻找故事板解决方案,而不是编程解决方案.但是,如果不存在,那么编程解决方案就足够了.我不想设置窗口的最小/最大尺寸 ; 用户应该能够根据自己的需要调整大小.
我正在使用HTML5和SenchaTouch为iPad编写Web应用程序.该应用程序使用缓存清单脱机运行.一旦它被添加到主屏幕并在没有Safari的情况下打开,它将在每次打开时自动刷新,即使只是导航到主屏幕并返回.理想的行为是离开应用程序,做其他事情,然后回到应用程序,一切都未触及.
可以在此处找到显示相同(不需要的)行为的类似应用程序的示例:http://ignitedmediadesign.com/WebApp/index.html
我已经读过使用缓存清单应该已经在iPhone上解决了这个问题(http://www.stevesouders.com/blog/2011/06/28/lack-of-caching-for-iphone-home-screen-apps /),但似乎没有完成iPhone或iPad的技巧.
有没有其他方法来解决这个问题?是否有一些秘密可以缓存阻止我可能错过的清单文件?
application-cache ipad sencha-touch offline-web-app iphone-standalone-web-app
我正在使用一个MKUserTrackingBarButtonItem按钮,允许用户自动跟踪他们在地图上的位置.问题是,当他们点击此按钮时,它会被缩放得太远.我希望它以指定的缩放级别(即跨度)开始.我怎样才能做到这一点?
当用户点击按钮进行更改时MKUserTrackingModeFollow,它似乎使用用户上次手动更改的相同缩放级别(即在地图上使用手势).尝试通过setRegion或setVisibleMapRect不影响更改模式时将使用的缩放级别来指定不同的缩放级别MKUserTrackingModeFollow.
尝试override mapView:didChangeUserTrackingMode:设置区域会导致模式更改回MKUserTrackingModeNone.例:
- (void)mapView:(MKMapView *)mapView didChangeUserTrackingMode:(MKUserTrackingMode)mode animated:(BOOL)animated {
if (mode == MKUserTrackingModeFollow) {
CLLocationCoordinate2D center = mapView.userLocation.location.coordinate;
MKCoordinateSpan span = MKCoordinateSpanMake(0.002306, 0.001717);
[mapView setRegion:MKCoordinateRegionMake(center, span) animated:YES];
// [mapView setUserTrackingMode:MKUserTrackingModeFollow animated:NO];
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在设置区域后立即尝试重置模式,则在用户静止时可以正常工作,但如果用户正在移动则缩小.
最简单的解决方案是,如果有一种方法可以通过发送我的跨度值来简单地为MKUserTraking指定类似缩放级别的内容.但是,由于这似乎不存在,我还能做什么?
我正在从xib文件创建一个UITableViewHeaderFooterView,几乎所有东西都正常工作.
问题是,现在当我尝试更改背景颜色时(或者如果我在xib中配置了一个),它会不断地将此消息输出到控制台:
不推荐在UITableViewHeaderFooterView上设置背景颜色.请改用contentView.backgroundColor.
这意味着我有两个问题:
contentView.backgroundColor建议,但是当我尝试遵循该建议时,没有任何反应.(这是因为contentView是nil.)注意:这里有一个类似的问题,但主要是关注消息,而不是找到解决上述两个问题的替代解决方案.
更新:要清楚,我想继续使用xib文件作为标题视图,并希望能够调用dequeueReusableHeaderFooterViewWithIdentifier:这样表可以有效地管理视图.
ios ×5
swift ×3
objective-c ×2
uitableview ×2
xctest ×2
apple-maps ×1
core-data ×1
didset ×1
installation ×1
ios10 ×1
ipad ×1
macos ×1
mapkit ×1
mogenerator ×1
plugins ×1
properties ×1
sencha-touch ×1
storyboard ×1
swiftui ×1
uiview ×1
window ×1
xcode ×1
xcode7 ×1