js传给OC的字符串长度大于9时会被自动释放

如题 :
在使用ios内购支付时,给OC传递了大于9个字符的字符串,
oc接收时没问题,
由于支付是异步的,当支付回调时再使用这个变量,则这个变量被释放掉了,变成了野指针了!
小于9个字符的字符串没问题!
查了百度 OC存储字符串时,按9个字符分成了2中情况, 小于9个字符时 是值copy, 大于9个字符时是 址copy

参考地址 https://blog.csdn.net/qiangshuting/article/details/100905120

@引擎组大佬

既然如此。当OC层接受到JS传递的字符串的时候,。你可以在OC再创建一个NSString 去copy一下这个字符串啊。以后直接拿这个NSString的字符串用不好吗?

不好使,按说地址都变了,但也还是被释放了,不知道是oc的问题还是jsb的问题!

怎么会不好使,你重新创建的NSString 变量A 用深拷贝把字符串拷贝到自己的内存里来,js那边怎么释放。也不会影响到自己创建的变量A啊。

可能跟 oc 的 私有成员变量有关系, 后台改变了使用方式 才可以!
具体原因我也不详啊!