看一下iOS的Google跟踪代码管理器后,似乎只能通过使用CocoaPods来集成它.
https://developers.google.com/tag-manager/ios/v5
我的公司使用迦太基.是否可以使用迦太基?你们中有人设法做到了吗?
任何人都可以解释为什么这不泄漏?
我正在捕获self,closure所以我会有两个强指针指向对方,因此,deinit永远不应该为Person对象调用该消息.
首先,这是我的班级人物:
class Person {
var name: String
init(name: String) { self.name = name }
deinit { print("\(name) is being deinitialized") }
}
Run Code Online (Sandbox Code Playgroud)
这是我的ViewController的实现:
class ViewController: UIViewController {
var john:Person?
func callClosureFunction( closure:(name:Bool) -> () ) {
closure(name: true)
}
override func viewDidLoad() {
super.viewDidLoad()
john = Person(name:"John")
self.callClosureFunction { (name) in
self.john?.name = "John Appleseed"
self.john = nil
// xcode prints - John Appleseed is being deinitialized
} …Run Code Online (Sandbox Code Playgroud) 我试图了解ARC的工作方式,据我所知,我应该在这里做错事.这是我正在使用的代码:
接口:
@interface ViewController : UIViewController{
}
@property (strong, nonatomic) NSString * myString ;
@property (weak, nonatomic) NSString * myPointer ;
Run Code Online (Sandbox Code Playgroud)
执行:
- (void)viewDidLoad{
[super viewDidLoad];
self.myString = @"Hello world!" ; // myString is strong
self.myPointer = self.myString ; // myPointer var is weak
[self performSelector:@selector(makeNilMyValue) withObject:nil afterDelay:1];
[self performSelector:@selector(printValues) withObject:nil afterDelay:2];
}
- (void) makeNilMyValue{
self.myString = nil ;
}
- (void) printValues{
NSLog(@"myString: %@", self.myString) ;
NSLog(@"myPointer: %@", self.myPointer) ;
}
Run Code Online (Sandbox Code Playgroud)
执行此操作后,我得到:
2012-02-26 11:40:41.652 test1[933:207] myString: (null)
2012-02-26 …Run Code Online (Sandbox Code Playgroud)