Tôi muốn biết cách truyền các cấu trúc cho một hàm khác và sau đó truy cập cấu trúc đó trong hàm được gọi. Tôi đang phát triển cho iPhone và lý do tôi đang sử dụng cấu trúc là vì vậy mà tôi cuối cùng có thể truyền dữ liệu như cấu trúc đến một máy chủ được xây dựng trong C.Vượt qua và truy cập các cấu trúc bằng cách sử dụng mục tiêu-c
Dưới đây là cấu trúc:
struct userInfo{
NSString *firstName;
NSString *lastName;
NSString *username;
NSString *email;
NSString *ipAddress;
double latitude;
double longitude;
};
Ở đây tôi đang chỉ đơn giản là lấy một số người dùng inputed dữ liệu cùng với một số dữ liệu CoreLocation và của iPhone Địa chỉ IP: xử lý
- (IBAction)joinButton {
struct userInfo localUser;
localUser.firstName = firstName.text;
localUser.lastName = lastName.text;
localUser.username = username.text;
localUser.email = emailAddress.text;
localUser.ipAddress = localIPAddress.text;
localUser.latitude = currentLocation.coordinate.latitude;
localUser.longitude = currentLocation.coordinate.longitude;
[myNetworkConnection registerWithServer:&localUser];
}
hàm struct:
- (void)registerWithServer:(struct userInfo*)myUser {
printf("First name is: %s", myUser.firstName);//error when compiling
}
người khiếu nại gửi lỗi này: request for member 'firstName' in something not a structure or union
. Đó có phải là cấu trúc nằm ngoài phạm vi khi tôi cố gắng truy cập nó trong hàm thứ hai không?
Không có lý do gì để đặt đối tượng Objective-C bên trong các cấu trúc. Đừng làm thế. Hoặc là làm cho một đối tượng để giữ dữ liệu của bạn, đặt nó trong một NSDictionary, hoặc chuyển đổi tất cả mọi thứ sang các loại C bản địa như char * cho cấu trúc của bạn. –