我无法找到更好的方法来做到这一点.我将学生对象的所有属性映射到2D数组.所以我的电视有部分.
我也不能使用静态表视图,如果是这样,这个问题就不存在了.
所以我在TVC的代码
let currentUser = PFUser.currentUser()! as! MyUser
var membershipSection:[[String:String]]!
var detailsSection:[[String:String]]!
var emergancySection:[[String:String]]!
var medicalSection:[[String:String]]!
var titlesForSection = ["MEMBERSHIP", "DETAILS", "EMERGANCY CONTACT", "MEDICAL HISTORY"]
var combo = [[[String:String]]]() // Data Source for TableView
Run Code Online (Sandbox Code Playgroud)
//从ViewDidLoad调用以下内容
func loadDisplayDataSource() {
combo.removeAll(keepCapacity: true)
var idString = "Awaiting ID Generation"
if student.objectId != nil {
idString = student.objectId!
}
membershipSection = [["Sessions":student.sessionsRemaining], ["Details":""], ["ID":idString]]
detailsSection = [["First Name":student.firstName], ["Last Name":student.lastName], ["DOB":""], ["Address":""], ["Phone":""], ["Email":student.email], ["Occupation":""]]
emergancySection = [["Name":""], ["Phone":""]]
medicalSection = [["Recent Surgery":""], …Run Code Online (Sandbox Code Playgroud) 我正在使用Firebase离线功能设置为true.
let ref = FIRDatabase.database().referenceWithPath(“my data”).child(“my users id”)
scoresRef.keepSynced(true)
Run Code Online (Sandbox Code Playgroud)
此路径还将Synced设置为true,因为在使用本地缓存时,应用程序中不会立即看到数据库中的更改.
我在我的应用程序中有另一个我要搜索的顶级节点/路径 - 包含其他用户.
我想使用singleEvent查询并找到一个电子邮件地址,我这样做是通过
studios.queryOrderedByChild("email").queryEqualToValue(email).observeSingleEventOfType(.Value, withBlock: { snapshot in // etc
Run Code Online (Sandbox Code Playgroud)
我能够找到该节点,但是我一直在获取本地缓存版本,而不是firebase在线商店中的最新版本.
如果我在线对节点进行了一些更改,我不会在获取中获取这些更改.
如果我将我的提取更改为监视器类型即
studios.queryOrderedByChild("email").queryEqualToValue(email).observeEventType(.Value, withBlock: { snapshot in // etc
Run Code Online (Sandbox Code Playgroud)
我先获取本地缓存节点,然后获取在线更新版本.
我宁愿使用SingleEvent提取,但我不想用keepSynced监视用户整个节点,因为它是一个高级节点,我不想在本地保留所有数据,因为它与用户没有直接关系.
我发现的一个修复是在单个查询之前添加.keepSynced(true),在完成块中添加.keepSynced(false).我不确定这个节点的下载量是多少,也可以使用monitor fetch而不是singleEvent.
我应该只使用monitorEvent还是有更好的方法来使用SingleEventFetch进入在线商店而不是仅仅返回我的本地节点.
PS我在线,这是通过确认
var connectedRef = FIRDatabase.database().referenceWithPath(".info/connected")
connectedRef.observeEventType(.Value, withBlock: { snapshot in
let connected = snapshot.value as? Bool
if connected != nil && connected! {
println("Connected")
} else {
println("Not connected")
}
})
Run Code Online (Sandbox Code Playgroud)
谢谢
经过一些研究后,我仍然不确定何时/如何创建我的UIManagedDocument.
@interface ViewController ()
@property (strong, nonatomic) UIManagedDocument *document;
@end
@implementation ViewController
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *documentsDirectory = [[fileManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] firstObject];
NSString *documentName = @"MyDocument";
NSURL *url = [documentsDirectory URLByAppendingPathComponent:documentName];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:[url path]];
if (fileExists) {
[self.document openWithCompletionHandler:^(BOOL success) {
NSLog(@"Exsits dont create again");
if (success) [self documentIsReadyCreateAndObject];
if (!success) NSLog(@"cound not open document at %@", url);
}];
}
else {
// create it
[self.document saveToURL:url forSaveOperation:UIDocumentSaveForCreating …Run Code Online (Sandbox Code Playgroud) 我无法找到一种方法来区分从导航控制器堆栈弹出和从 UITabBarController 进入视图控制器。
我只想在视图从 TabBar 呈现时调用 ViewWillAppear 中的方法,而不是在有人按下导航控制器时。
如果我没有使用 TabBarController,我可以很容易地使用 viewDidLoad 在功能上获得它。
我试过了,
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
println("View Will Appear")
if isBeingPresented() {
println("BP")
}
if isMovingFromParentViewController() {
println("from")
}
if isMovingToParentViewController() {
println("to")
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我按下 Tab 按钮或按下后退按钮时没有区别。
只有“视图将出现”被调用。
使用 iOS 8.4 / Swift
uitabbarcontroller uinavigationcontroller viewwillappear ios swift
有没有办法在 SwiftUI 中为新的全屏模式 iOS 14 使用替代动画?
目前它从底部向上滑动,但我想要交叉溶解。我已经尝试了几件事,但没有运气。我认为新的matchedGeometryEffect()修饰符可能有用。
下面是这个新功能的默认使用
struct ContentView: View {
@State private var isShowing = false
var body: some View {
Button {
isShowing.toggle()
} label: {
Text("Show Modal").font(.largeTitle)
}.fullScreenCover(isPresented: $isShowing) {
Text("Hello").font(.largeTitle)
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含集合视图的标准视图控制器.
我正在使用从自定义子类创建的自定义单元格填充集合视图UICollectionViewCell.
从集合视图单元类中调用集合视图类中的方法的最佳实践是什么?
为什么在我的集合视图单元类中没有调用以下init,我认为当collectionView类创建我的单元格时会调用它.
(id)initWithFrame:(CGRect)frame
我想这样做的原因是因为我正在删除集合视图单元格,删除函数位于集合视图单元格类中.我想在删除时播放声音,而宁愿在集合视图控制器类中初始化声音,而不是每个单元格.
我正在更新,UITableViewController以使用新的UITableViewDiffableDataSource,但所有工作都正常,但要滑动删除即可。
这是我如何使用滑动删除的示例
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let lockedAction = UIContextualAction(style: .normal, title: "TEST") { (_, _, completion) in
print("tapped....")
completion(true)
}
return UISwipeActionsConfiguration(actions: [lockedAction])
}
Run Code Online (Sandbox Code Playgroud)
但这在UITableViewController具有UITableViewDiffableDataSource
没有滑动,方法中的断点也不会被调用
我以为这是一个Beta错误,但是我更新到了Xcode 11 GM,并且发生了同样的事情。
感谢您的任何建议
我将尝试使用Xcode 7(代码覆盖率)和Swift 2.0中的新测试功能.
使用代码覆盖,我发现我没有测试我的NSCoding方法.
有关保存一些细节的简单示例,例如
required init(coder aDecoder: NSCoder) {
name = aDecoder.decodeObjectForKey("name") as! String
time = aDecoder.decodeIntegerForKey("time")
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeInteger(time, forKey: "time")
aCoder.encodeObject(name, forKey: "name")
}
Run Code Online (Sandbox Code Playgroud)
我如何在XCTest类中测试这些方法.
任何人都可以建议清洁工从 CLPlacemark 创建地址字符串。
目前我正在使用这个扩展
extension CLPlacemark {
func makeAddressString() -> String {
var address = ""
if subThoroughfare != nil { address = address + " " + subThoroughfare! }
if thoroughfare != nil { address = address + " " + thoroughfare! }
if locality != nil { address = address + " " + locality! }
if administrativeArea != nil { address = address + " " + administrativeArea! }
if postalCode != nil { address = address …Run Code Online (Sandbox Code Playgroud) 在物理设备(运行 14.0.1 的设备)上使用 Xcode 12 运行任何应用程序时出现问题
从一个新项目开始,简单的 Hello World 应用程序在连接到 Xcode 时不会在我的设备上启动。
屏幕保持黑色,显示白色底部主页栏。Xcode 显示应用程序正在运行,没有警告,没有错误。
struct ContentView: View {
var body: some View {
Text("Hello, world!").foregroundColor(.red)
.padding()
.onAppear {
print("Working....")
}
}
}
Run Code Online (Sandbox Code Playgroud)
它在模拟器上运行良好,因此打印出调试文本。
但是,在我的设备上,我没有收到调试文本 - 所以启动过程失败了。
但是,如果我在 Xcode 上停止该项目,然后在我的设备上运行已安装的应用程序,该应用程序将按预期运行!!
我更改了几次字体颜色,它正确地将应用程序安装到设备上,但在连接到 Xcode 时无法运行,但在手机上运行应用程序时可以正常工作
我取消了我的设备的配对,但没有帮助。
不知道接下来要尝试什么...
感谢您的任何建议
这就是我设置弹出窗口的方式
UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Delete Patient"
action:@selector(customAction:)];
[[UIMenuController sharedMenuController] setMenuItems:@[menuItem]];
Run Code Online (Sandbox Code Playgroud)
然后添加require方法
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
NSLog(@"canPerformAction");
// The selector(s) should match your UIMenuItem selector
if (action == @selector(customAction:)) {
return YES;
}
return NO;
}
- (void) customAction:(id) sender
{
for (Treatment *t in self.ptToDelete.patientRx) {
[self.managedObjectContext deleteObject:t];
}
[self.managedObjectContext deleteObject:self.ptToDelete];
NSError *error = nil;
if (![self.managedObjectContext save:&error]) {
NSLog(@"Error! %@", error);
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于iOS6,但现在不适用.以下方法未被调用,应该在我点击并按住时调用
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
Run Code Online (Sandbox Code Playgroud) 在iOS中使用正则表达式拆分字符串
我已经使用循环解决了这个问题,但是想要一个更清晰的答案,我希望一个reg exe大师可以帮助我.
我的原始字符串可能如下所示
NSString *originalString = @"343 a mr smith needs this work";
NSString *originalStringVerTwo = @"345a mr jones needs this work as well";
NSString *originalStringVerThree = @"345 Mrs Someone";
Run Code Online (Sandbox Code Playgroud)
我需要分成3个单独的新字符串:
例如
应该导致以下结果
第1行
NSString *one = 123a
NSString *two = mr who
NSString *three = here are some words
Run Code Online (Sandbox Code Playgroud)
第2行
NSString *one = 124b // i want the white space removed between …Run Code Online (Sandbox Code Playgroud) ios ×6
swift ×5
ios14 ×2
uitableview ×2
animation ×1
clplacemark ×1
core-data ×1
device ×1
firebase ×1
ios13 ×1
launch ×1
nscoding ×1
nsstring ×1
objective-c ×1
optional ×1
regex ×1
string ×1
swiftui ×1
unit-testing ×1
xcode12 ×1