Post

Replies

Boosts

Views

Activity

Understanding Optionals and Types (again)
I have a real problem trying to get to grips with the whole Optionals/wrapping thing, and associated type issues. Here's my code: import Quartz import Foundation func listFilters() -> Void { let theFilters = QuartzFilterManager.filters(inDomains: nil)! for eachFilter in theFilters as! [QuartzFilter] { print(eachFilter.localizedName()!, ":", eachFilter.url().path) } } listFilters() So, in the first line of the function, I have to explicitly force unwrap the result of the method that returns a list of QuartzFilters. (Why?) The very next line, I have to force them to be of type QuartzFilters, (because why wouldn't the method return the actual type of thing that they are?) And then on the third line, I still have to force unwrap one of the properties of something that I've already unwrapped (otherwise I get optionals), but not the other one. Yes, I understand it's all about trying to prevent a null condition, but nearly everything is never null. Even if I use if let on the first line, I'm still unwrapping stuff inside that if.
2
0
1.1k
May ’22
How to use ippeveprinter
Now that CUPS backends, filters and PPDs are deprecated, I'm trying to set up a print to file queue using ippeveprinter. But I can't get it to work. Anyone know anything about it? I've tried: ippeveprinter -D file:///Users/Shared/Print/Out -F application/pdf -c /usr/local/bin/pscommand.sh myprinter and then created a shell command that runs: cupsfilter $1 I've tried it without the -c flag as well. Sometimes I've produced .prn files, and occasionally .urf files (but without changing anything I've also got zero length files). But I just can't get a PDF into my destination folder.
0
0
1.6k
Nov ’21
Understanding Optionals and Types (again)
I have a real problem trying to get to grips with the whole Optionals/wrapping thing, and associated type issues. Here's my code: import Quartz import Foundation func listFilters() -> Void { let theFilters = QuartzFilterManager.filters(inDomains: nil)! for eachFilter in theFilters as! [QuartzFilter] { print(eachFilter.localizedName()!, ":", eachFilter.url().path) } } listFilters() So, in the first line of the function, I have to explicitly force unwrap the result of the method that returns a list of QuartzFilters. (Why?) The very next line, I have to force them to be of type QuartzFilters, (because why wouldn't the method return the actual type of thing that they are?) And then on the third line, I still have to force unwrap one of the properties of something that I've already unwrapped (otherwise I get optionals), but not the other one. Yes, I understand it's all about trying to prevent a null condition, but nearly everything is never null. Even if I use if let on the first line, I'm still unwrapping stuff inside that if.
Replies
2
Boosts
0
Views
1.1k
Activity
May ’22
How to use ippeveprinter
Now that CUPS backends, filters and PPDs are deprecated, I'm trying to set up a print to file queue using ippeveprinter. But I can't get it to work. Anyone know anything about it? I've tried: ippeveprinter -D file:///Users/Shared/Print/Out -F application/pdf -c /usr/local/bin/pscommand.sh myprinter and then created a shell command that runs: cupsfilter $1 I've tried it without the -c flag as well. Sometimes I've produced .prn files, and occasionally .urf files (but without changing anything I've also got zero length files). But I just can't get a PDF into my destination folder.
Replies
0
Boosts
0
Views
1.6k
Activity
Nov ’21