草庐IT

weak_ptr

全部标签

iphone - 为什么使用 __weak 不会导致局部变量立即消失?

我从事同一个项目已有一段时间了,随着时间的推移,我对Objective-C和Cocoa的理解也有了一些进展。回顾我的代码的某些部分,我看到了这一点:__weakASIFormDataRequest*serverQueueRequest=[ASIFormDataRequestrequestWithURL:url2];[serverQueueRequestsetCompletionBlock:^{NSLog(@"%@",serverQueueRequest.responseString);}];[serverQueueRequeststartAsynchronous];这就是我处理所有服务

ios - 当前部署目标不支持 -fobjc-weak

我刚刚更新了我的Pod,其中一个BoringSSL现在正在错误地构建我的构建,并出现以下错误:AppleLLVM9.0Error-fobjc-weakisnotsupportedonthecurrentdeploymenttarget不确定我需要在这里做什么?这是BoringSSL包或我的项目的问题吗?EDIT我相信这被grpc使用了? 最佳答案 这是CocoaPods/Xcodeproj#544最近发布了修复程序。将Xcodeprojgem从1.5.5更新到1.5.6。 关于ios-当

ios - 如何在方法中使用 __weak 来防止 iOS 中的内存泄漏

我一直在尝试在iOS应用程序中进行一些模拟计算,但随着时间的推移,我的手机内存不足,它不会停止增加内存使用量,尽管我知道这是在哪里发生的(用Instruments解决了)我仍然不知道我需要更改什么来阻止内存泄漏。这是进行内存分配的方法,我知道我要在此处添加新数据,但我认为ARC会释放所有我无法再引用的已分配数据?intround=0;InstanceInSimulation*simulatingChosen=[[InstanceInSimulationalloc]initWithSimulationInstance:_chosenInstance];InstanceInSimulati

objective-c - 在非 ARC iOS Objective-C 代码中使用 __weak 有什么缺点吗?

我正在编写没有ARC的iOSObjective-C代码。我更喜欢__weakMyClass*myWeakIVar;例如MyClass*myWeakIvar;//weak它不仅对我来说读起来更好,而且如果我曾经在垃圾收集平台等上使用过这段代码,我会得到__weak指令的好处。这有什么缺点吗?换句话说,它目前是否等同于(同样,没有ARC)iOS上的noop? 最佳答案 根据thisthread,__weak如果禁用ARC,则在iOS上不执行任何操作。 关于objective-c-在非ARCi

ios - 为什么 weak_table_t 在 Objective-C 运行时是 SideTable 的成员?

我正在阅读https://github.com/opensource-apple/objc4的objc代码.在代码中,有一个structSideTable,其中包含对应对象的引用计数和一个weak_table_t。structSideTable{spinlock_tslock;RefcountMaprefcnts;weak_table_tweak_table;SideTable(){memset(&weak_table,0,sizeof(weak_table));}~SideTable(){_objc_fatal("DonotdeleteSideTable.");}voidlock()

ios - 为什么 __weak 对象会被添加到自动释放池中?

id__weakobj1=obj0;等于id__weakobj1=obj0;id__autoreleasingtmp=obj0;适用于iOS和OSX的Pro多线程和内存管理。但是为什么obj1需要添加到autoreleasepool中,我认为做一个对象的弱指针应该不会影响它的生命周期。 最佳答案 {NSObject*sp=[NSObjectnew];NSObject*__weakwp=sp;}上面的代码翻译成:idsp=objc_msgSend(NSObject,"new");idwp;objc_initWeak(&wp,sp);o

php - 将 IPV6 转换为 PTR 记录的半字节格式

我需要将ipv6地址转换为其半字节格式以用于动态创建ptr记录。这是我从维基百科得到的信息:IPv6reverseresolutionReverseDNSlookupsforIPv6addressesusethespecialdomainip6.arpa.AnIPv6addressappearsasanameinthisdomainasasequenceofnibblesinreverseorder,representedashexadecimaldigitsassubdomains.Forexample,thepointerdomainnamecorrespondingtotheIP

java - JNI 错误 : accessed stale weak global reference

我在我的native代码中缓存了对Java对象的引用,就像这样://javaglobalreferencedeleter//_JAVA_ENVisaninstanceofJNIEnvthatiscachedgloballyandjust//validincurrentthreadscopestaticvoidg_java_ref_deleter(jobjectptr){_JAVA_ENV->DeleteGlobalRef(ptr);}//nativeclasscachesajavaobjectreferenceclassNativeA{private:shared_ptrM_java_

c++ - 我应该在我的类中的 std::vector 成员变量中使用 std::unique_ptr<T> 吗?

想象一个classC有一个成员变量m_MyList类型std::vector我想在其中存储MyClass类型的对象.C有两个函数可以在m_MyList中添加或删除对象.m_MyListC的消费者也应该可以访问因为他们需要阅读MyClass的合集对象。集合的外部读者将无法更改集合,因此MyClass对象仅由C拥有.现在我的问题是:在C++11风格中,vector中存储的最佳T是多少?可能性似乎是:std::vectorstd::vectorstd::vector>,使用std:move推unique_ptr进入vector 最佳答案

c++ - 为什么 boost::shared_ptr 中的引用计数器不是易变的?

在boost::shared_ptr析构函数,这是完成的:if(--*pn==0){boost::checked_delete(px);deletepn;}哪里pn是指向引用计数器的指针,类型定义为shared_ptr::count_type->detail::atomic_count->long我会期待long成为volatilelong,在shared_ptr中给定线程使用和非原子0-check-and-deletion|上面的析构函数。为什么它不是易变的?编辑:结果我查看了未指定多线程使用时使用的header(atomic_count.hpp)。在atomic_count_win