self-learning note
int -> %d
stinrg-> %s
func foo(a int, b string) string {
return fmt.Sprintf("%d %s", a, b)
}
*string -> %p
var ptr *string // 宣告一個指向字串的指標變數ptr
fmt.Printf("%p \n", ptr) // 印出: 0x0 (尚未指派記憶體位置)
self-learning note
int -> %d
stinrg-> %s
func foo(a int, b string) string {
return fmt.Sprintf("%d %s", a, b)
}
*string -> %p
var ptr *string // 宣告一個指向字串的指標變數ptr
fmt.Printf("%p \n", ptr) // 印出: 0x0 (尚未指派記憶體位置)
iOS13 no shadow explain
iOS14之前 UIStackView的layer是CATransformLayer
. -> 陰影 無效
iOS14之後 UIStackView的layer是CALayer
.-> 陰影 有效
可以在UIStackView外面包一層UIView 上陰影做舊版本支援
參考
https://useyourloaf.com/blog/stack-view-background-color-in-ios-14/
做第一個自己的framework
來自 https://www.youtube.com/watch?v=TCnhvHUcjrY
可以當作做一個自己的第三方資料庫使用。
開一個project 例如: CoolUI
然後打包後,放到專案裡面,
** ARCHIVE SUCCEEDED **
import CoolUI 後就可以使用裡面方法。
2. Add needed classes
3. Build Settings / Build Libraries for Distribution set YES
4. Build Settings / Skip Install set NO
5. Open termnial
6. cd and drag the folder with project
…
Debug choose
This is from https://www.avanderlee.com/combine/runloop-main-vs-dispatchqueue-main/
receive(on:options:)
Same
Different
class viewModel: { var reloadCount: Int = 0 //ViewModel send to View => react the event
var reloadCollectionView: ( ()->() )?
//View call ViewModel => user touch the Buttom (event) func onTapCellButton() {
//changeDataFirst reloadCount += 1 self. reloadCollectionView?()
}}
It’s a true story. It happens by accident.
class VC1 :UIViewController() { let viewModel = VC1ViewModel() func callVC2(){ let vc2 = UIViewController() vc2.onTap = { (value) in self.viewModel.callMom() } deinit(){
print("VC1 dead")
}}
So, When VC1 dismiss or popup. VC2 and viewModel still in alive.
It prints nothing.
Change…
import Foundation
import RealmSwift
class LogData: Object{
@Persisted(primaryKey: true) var _id: ObjectId
@Persisted var date: String?
@Persisted dynamic var time: String?
convenience init(content: String){
self.init()
}
}
func addNewLog(_ time:String,_ date:String) -> LogData{
let newLog = LogData()
newLog.time =…
增刪改檔案後記得下 composer dump-autoload
### 顯示路由
php artisan route:list
### new 一個controller
//做一個ProductController
php artisan make:controller ProductController
//做一個ProductController 包 …
/## Swift
class Person: NSObject {
var _name: String
init(name: String){
_name = name
}
function setName(name:String){
_name = name
}
}
run in playground
Person.setName(“Dancer”)
/##ObjC
@interface Person : NSObject {
NSString* _name;
}
-(void)setName: (NSString*) name;
-(NSString*) name;
@end
@Implementation Person
-(void)setName: (NSString * )name {
_name =…