Posts

Post not yet marked as solved
5 Replies
Hello @robnotyou and @ChuckMN. Thx for both answering so fast :) Yes the problem is with my checking of the internet connection This is my code: public class InternetReachability {     class func isConnectedToNetwork() -> Bool {         var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))         zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))         zeroAddress.sin_family = sa_family_t(AF_INET)         let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {             $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {zeroSockAddress in                 SCNetworkReachabilityCreateWithAddress(nil, zeroSockAddress)             }         }         var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags(rawValue: 0)         if SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) == false {             return false         }         let isReachable = flags == .reachable         let needsConnection = flags == .connectionRequired         return isReachable && !needsConnection     } } The code above only works if I plug my phone in my computer and directly compline onto my phone, but not through ad hoc If I change the code to this both distributions work perfectly, but why does the above one doesn't work for ad hoc public class InternetReachability {     class func isConnectedToNetwork() -> Bool {         var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))         zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))         zeroAddress.sin_family = sa_family_t(AF_INET)         let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {             $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {zeroSockAddress in                 SCNetworkReachabilityCreateWithAddress(nil, zeroSockAddress)             }         }         var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags(rawValue: 0)         if SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) == false {             return false         }         let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0         let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0         let ret = (isReachable && !needsConnection)         return ret     } }
Post marked as solved
10 Replies
I finally figured it out. Now everything is working fine, but thank you for your help
Post marked as solved
10 Replies
I am doing something wrong or it is not working.And I just realized that they: https://developer.apple.com/documentation/uikit/view_controllers/providing_access_to_directoriescall when reading the Bookmarklet bookmarkData = try Data(contentsOf: getMyURLForBookmark())But this doesn't exists. I always get the errorArgument passed to call that takes no argumentsOnly NSData hasNSData(contentsOf: URL)If I want to use this and than transform it back to Data() I get the errorCannot convert value of type 'appName.Data' to expected argument type 'Foundation.Data'I just want to access a smb server in the files app or doesn't matter how. This can't be that difficult. Mhhh 😟
Post marked as solved
10 Replies
Could you explain me what they call when there is written getMyURLForBookmark()What is written behind this. It is never explained.where do they write it to?
Post marked as solved
10 Replies
Second code describiton line 16 - 18. If this is the wrong way please show me the right one.
Post marked as solved
7 Replies
When I printed it in the console with the didPickDocumentAt function I copied it and pasted it in my read function. I know that this is very bad, but I couldn't figure out how to save it with bookmark.So my question now is how do I save the url in a bookmark when it calls didPickDocumentAt and than later use it in my writing/reading functions and do not get the error that I do not have the permission for this?
Post marked as solved
7 Replies
I was already trying bookmark: https://developer.apple.com/documentation/uikit/view_controllers/providing_access_to_directoriesI found this in the Documentation. If you scroll down to Save the URL as a Bookmark could you please explain me where they get this from?getMyURLForBookmark()try bookmarkData.write(to: getMyURLForBookmark())How can I save the bookmark to use it later to write into the file.When I try bookmark I always get the errorCannot convert value of type 'appName.Data' to expected argument type 'Foundation.Data'And I also triedlet didStartAccessing = url.startAccessingSecurityScopedResource() defer { if didStartAccessing { url.stopAccessingSecurityScopedResource() } }But this doesn't help. I always get the error 'Operation not permitted'
Post not yet marked as solved
5 Replies
This is my own thread but this doesn't help.
Post not yet marked as solved
5 Replies
This doesn't help me. I need to have a solution for 'iOS' to get a path from the server I have connected in the files app.
Post not yet marked as solved
10 Replies
So my current approach looks like this but this doesn't work properly. When the button got pressed it calculates the part of the string which wasn't visible on the screen. That works fine but the string I get from the function is always a little bit longer than the acutal text I can see on my device. What am I doing wrong? @IBAction func buttonHandler(_ sender: UIButton) { let substring = stringThatFitsOnScreen(originalString: textView.text) let textOfTextView = labelText passToNextView = String(textOfTextView.dropFirst(substring!.count)) print(substring) print(passToNextView) print(textView.intrinsicContentSize.width) performSegue(withIdentifier: "test", sender: self) } func stringThatFitsOnScreen(originalString: String) -> String? { // the visible rect area the text will fit into let userHeight = textView.bounds.size.height - textView.textContainerInset.top - textView.textContainerInset.bottom let userWidth = textView.bounds.size.width - textView.textContainerInset.right - textView.textContainerInset.left print(userWidth) let userHeight = textView.bounds.size.height - textView.textContainerInset.top - textView.textContainerInset.bottom //let userWidth = textView.intrinsicContentSize.width //let userHeight = textView.intrinsicContentSize.height let rect = CGRect(x: 0, y: 0, width: userWidth, height: userHeight) // we need a new UITextView object to calculate the glyphRange. This is in addition to // the UITextView that actually shows the text (probably a IBOutlet) let tempTextView = UITextView(frame: self.textView.bounds) tempTextView.font = textView.font tempTextView.text = textView.text // get the layout manager and use it to layout the text let layoutManager = tempTextView.layoutManager layoutManager.ensureLayout(for: tempTextView.textContainer) // get the range of text that fits in visible rect let rangeThatFits = layoutManager.glyphRange(forBoundingRect: rect, in: tempTextView.textContainer) // convert from NSRange to Range guard let stringRange = Range(rangeThatFits, in: originalString) else { return nil } // return the text that fits let subString = originalString[stringRange] return String(subString) }
Post not yet marked as solved
10 Replies
Yes I use a Textfield. So my current approach looks like this but this doesn't work properly. When the button got pressed it calculates the part of the string which wasn't visible on the screen. That works fine but the string I get from the function is always a little bit longer than the acutal text I can see on my device. What am I doing wrong?@IBAction func buttonHandler(_ sender: UIButton) { let substring = stringThatFitsOnScreen(originalString: textView.text) let textOfTextView = viewText passToNextView = String(textOfTextView.dropFirst(substring!.count)) print(substring) print(passToNextView) performSegue(withIdentifier: "nextView", sender: self) } func stringThatFitsOnScreen(originalString: String) -> String? { // the visible rect area the text will fit into let userWidth = textView.bounds.size.width - textView.textContainerInset.right - textView.textContainerInset.left let userHeight = textView.bounds.size.height - textView.textContainerInset.top - textView.textContainerInset.bottom let rect = CGRect(x: 0, y: 0, width: userWidth, height: userHeight) // we need a new UITextView object to calculate the glyphRange. This is in addition to // the UITextView that actually shows the text (probably a IBOutlet) let tempTextView = UITextView(frame: self.textView.bounds) tempTextView.font = textView.font tempTextView.text = textView.text // get the layout manager and use it to layout the text let layoutManager = tempTextView.layoutManager layoutManager.ensureLayout(for: tempTextView.textContainer) // get the range of text that fits in visible rect let rangeThatFits = layoutManager.glyphRange(forBoundingRect: rect, in: tempTextView.textContainer) // convert from NSRange to Range guard let stringRange = Range(rangeThatFits, in: originalString) else { return nil } // return the text that fits let subString = originalString[stringRange] return String(subString) }
Post not yet marked as solved
10 Replies
Yes, I almost solved it. It only works with specific font sizes and is there any possible way to use Fonts like "Avenir Next" instead of "Courier". This is not my taste 🙂Do you know what Apple uses for "Books" and how they programed this?
Post not yet marked as solved
10 Replies
I tested this https://stackoverflow.com/questions/51031829/how-to-turn-a-uitextview-into-pages-like-an-e-readerIs almost works fine but the string I get returned is always a bit longer than the acutally text I can see on the device. Why is that?
Post not yet marked as solved
10 Replies
Thx for your fast answer,But isn't it possible to do it like the App "Books" from Apple. Depending on the device, different amount of text fits on one page. your sincerellyTell
Post marked as solved
2 Replies
Thank you for your anser,Sorry but you are wrong the notification triggers at 8am I tested it. I know that I set only one specific time. That is how far I got.Maybe to make it easier to explain.I would like to create one notification, which should consist randomly out of many different body texts the user could get. Is there any possible way to do this.There is a way if I understand that right.Isn´t the content.userInfo the info my app gets when the user presses on my notifiaction. If I understood that right.I am not a profesional developer. Would be awesome if you can help me a little bit with the code.regards Tell