6

Tôi muốn sử dụng con trỏ kép và tôi đã cố gắng khai báo như thế này.cách khai báo biến NSString với con trỏ kép

NSString **a; 

nhưng, Xcode cho tôi thấy lỗi "Con trỏ đến loại không phải 'NSString *' không có quyền sở hữu rõ ràng" và không thể biên dịch được.

Cuối cùng tôi muốn làm như thế này.

NSString **a; 
NSString *b = @"b"; 
NSString *c = @"c"; 
a = &b; 
*a = c; 

NSLog(@"%@",b);//I wanna see "c" 

Hãy cho tôi biết bất kỳ lời khuyên nào.

+0

Mã bạn đã hiển thị hoàn toàn hợp pháp. Không có nhiều bối cảnh, tôi không nghĩ chúng ta có thể trả lời câu hỏi của bạn. –

+1

@CarlNorum Trừ khi Tự động- "smartass" -reference-đếm đi vào hình ảnh ... Sau đó, nó làm cho trình biên dịch phàn nàn về mỗi và mọi động lượng nhỏ ... –

+0

Ồ tôi hiểu rồi ... quên mất điều đó. ARC mới hơn khi tôi ngừng viết bất kỳ mã Objective-C nào. –

Trả lời

11

Thay đổi này để bạn có thể xác định rõ ràng quyền sở hữu:

NSString *__strong *a; 
NSString *b = @"b"; 
NSString *c = @"c"; 
a = &b; 
*a = c; 

NSLog(@"%@",b);//I wanna see "c" 

Output:

c 

Here is the documentation trên __strong.

+1

Cảm ơn! Có, Đây là câu trả lời hoàn hảo :) –

+0

ive nhìn thấy một loạt các mã objc với khai báo tên Type **. Điều đó đã bị phản đối? – mihai

Các vấn đề liên quan