Skip to content

KVOInfo中NSString *_keyPath;前面的__weak需要去掉 #9

Description

@naiyi

我的测试中,加入两个kvo属性runMode和readPointerAddress,当字符串较短的时候是NSTaggedPointerString类型,较长的时候是__NSCFString类型。
(lldb) po [NSStringFromSelector(@selector(runMode)) class]
NSTaggedPointerString
(lldb) po [NSStringFromSelector(@selector(readPointerAddress)) class]
__NSCFString
若在keyPath中使用__weak,__NSCFString类型的属性,在后续的getKVOInfosForKeypath操作中,对应取出来的KVOInfo->_keyPath为nil,去掉__weak则不会变成nil。而NSTaggedPointerString类型不受影响。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions