Tôi rất quen thuộc với việc viết các ứng dụng dựa trên VB nhưng mới vào Xcode (và Objective C). Tôi đã trải qua nhiều hướng dẫn trên web và hiểu các khái niệm cơ bản và cách tương tác với Trình tạo giao diện vv Tuy nhiên, tôi thực sự đang gặp khó khăn với một số khái niệm cơ bản về ngôn ngữ C và sẽ biết ơn bất kỳ trợ giúp nào bạn có thể cung cấp. Heres vấn đề của tôi ...Cách gọi một hàm từ một tệp lớp khác
Tôi có một ứng dụng iPhone đơn giản có bộ điều khiển xem (FirstViewController) và một chế độ xem con (SecondViewController) với tệp tiêu đề và lớp được liên kết.
Trong FirstViewController.m có một chức năng được xác định
@implementation FirstViewController
- (void) writeToServer:(const uint8_t *) buf {
[oStream write:buf maxLength:strlen((char*)buf)];
}
Nó không thực sự có vấn đề gì các chức năng là.
Tôi muốn sử dụng chức năng này trong SecondViewController tôi, vì vậy trong SecondViewController.m tôi nhập FirstViewController.h
#import "SecondViewController.h"
#import "FirstViewController.h"
@implementation SecondViewController
-(IBAction) SetButton: (id) sender {
NSString *s = [@"Fill:" stringByAppendingString: FillLevelValue.text];
NSString *strToSend = [s stringByAppendingString: @":"];
const uint8_t *str = (uint8_t *) [strToSend cStringUsingEncoding:NSASCIIStringEncoding];
FillLevelValue.text = strToSend;
[FirstViewController writeToServer:str];
}
dòng cuối cùng này là nơi mà vấn đề của tôi là. XCode cho tôi biết rằng FirstViewController có thể không đáp ứng với writeToServer. Và khi tôi cố gắng chạy ứng dụng nó bị treo khi chức năng này được gọi.
Tôi đoán tôi không hoàn toàn hiểu cách chia sẻ chức năng và quan trọng hơn, mối quan hệ giữa các lớp học.
Trong một thế giới lý tưởng, tôi sẽ tạo một lớp toàn cầu để đặt các chức năng của mình vào và gọi chúng theo yêu cầu.
Bất kỳ lời khuyên nào được biết ơn.
Bạn tốt hơn sử dụng đại biểu –
Tôi đã lên bình chọn urs hy vọng để có được nó trở lại trong câu trả lời của tôi quá –